【发布时间】:2011-11-05 03:06:37
【问题描述】:
这是我以前见过的一种做法,但不是很常见:一个变量在值本身被评估的同时被分配给一个值(或者它是被评估的表达式本身?)。示例:
// Outputs "The value is 1"
$value = 1;
if ($var = $value) {
echo "The value is $var";
}
好像是一样的:
$value = 1;
$var = $value;
if ($var) {
echo "The value is $var";
}
另一个例子:
// Outputs "The value is 1"
$value = 1;
echo "The value is ".$var = $value;
我一直在使用它来缩短我的代码,主要是第一个示例:用于评估第一个变量或表达式,同时将其分配给同一表达式中的另一个。像这样的:
if ($status = User::save($data)) {
echo "User saved.";
}
// do something else with $status
这似乎很基本,但我实际上找不到任何documentation,也许我不知道该去哪里找。看了这么多年才知道它是怎么工作的,我真的很喜欢使用它,但我不想随意使用它。
它使代码更短,对某些人来说可能不是很清楚,但绝对不会重复。这种方法有什么注意事项吗?这是完全安全的还是在任何情况下它可能会失败或导致意外行为?这似乎不是一种很常见的做法,所以我希望在我开始“发疯”之前找到一个解释。如果 记录在案,我们将非常感谢您提供指向正确页面的链接。
【问题讨论】:
标签: php variables expression variable-assignment