首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用变量获取或不使用PHP

使用变量获取或不使用PHP
EN

Stack Overflow用户
提问于 2013-01-31 18:21:15
回答 2查看 98关注 0票数 0
代码语言:javascript
复制
$url = isset($_GET["url"]) ? $this->checkValues($_GET["url"]) : $this->jDie();
$query = $this->query("SELECT * FROM `torrents` WHERE `url` = '".$url."'");
$fetch = $this->fetch($query) or $this->rURL('/#invalid-url');  

版本1:

代码语言:javascript
复制
<label><input type="checkbox" name="age" value="3" '.($this->contains("3", $fetch['age']) ? 'checked="checked"' : '').' class="age"/><span>3+</span></label>
<label><input type="checkbox" name="age" value="7" '.($this->contains("7", $fetch['age']) ? 'checked="checked"' : '').' class="age"/><span>7+</span></label>
<label><input type="checkbox" name="age" value="12" '.($this->contains("12", $fetch['age']) ? 'checked="checked"' : '').' class="age"/><span>12+</span></label>

版本2:

代码语言:javascript
复制
$age = $fetch['age'];

..。

代码语言:javascript
复制
<label><input type="checkbox" name="age" value="3" '.($this->contains("3", $age) ? 'checked="checked"' : '').' class="age"/><span>3+</span></label>
<label><input type="checkbox" name="age" value="7" '.($this->contains("7", $age) ? 'checked="checked"' : '').' class="age"/><span>7+</span></label>
<label><input type="checkbox" name="age" value="12" '.($this->contains("12", $age) ? 'checked="checked"' : '').' class="age"/><span>12+</span></label>

哪条路更好?

EN

回答 2

Stack Overflow用户

发布于 2013-01-31 18:23:49

你说了算。如果$this->fetch(查询)不执行任何清洗或验证,那么深入$_GET[]或$fetch基本上是一回事。虽然深入到$_GET[],然后使用非卫生的输入通常被忽略,因为它可能导致错误和漏洞。

票数 2
EN

Stack Overflow用户

发布于 2013-01-31 18:51:31

在确定要编写哪个版本的代码时,我建议您向自己提出一系列问题。

  1. 一个版本是否提供了任何类型的性能好处?
  2. 一个版本比另一个版本更具可读性吗?
  3. 一个版本比另一个版本更容易维护吗?

表示#1,两者本质上是相等的。您在第二个版本中声明了一个新变量,它的性能会受到很小的影响,但不会像执行额外的查询、读取远程文件等那样多。这会使我更倾向于第一个版本,但我并不是要回顾我的所有代码,尝试删除不必要的声明变量的每个实例,以尝试提高性能。

同样,在上面的代码中,#2的基本上是相等的。另一方面,如果您正在执行许多echo的操作,您可能希望选择声明变量,因为它稍微容易读懂:

代码语言:javascript
复制
echo "You have $num $currency remaining in your $where";

而不是这样写的:

代码语言:javascript
复制
echo 'You have ' . $fetch['num'] . ' ' . $fetch['curency'] . ' remaining in your ' . $fetch['where'];

但不管怎样,都没什么大不了的。

对于#3,它并不真正适用,因为这是如此的小和微不足道。然而,在使用$fetch时,维护代码的人对变量的来源有更好的了解,而不是一直在定义新变量,所以我还是倾向于第一个变量,但这也没什么大不了的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14632529

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档