php中var_dump($x)的方法怎么样
How about method of var_dump($x) in php
顺便说一句,我对此感到惊讶
此代码将输出什么以及为什么?
$x = true and false;
var_dump($x);
令许多人感到惊讶的是,上面的代码将输出 bool(true) 似乎暗示 and
运算符的行为与 or
.
不同
这里的问题是 = 运算符在运算顺序上优先于 and 运算符,因此语句 $x = true
和 false 最终在功能上等同于:
$x = true;
// 设置 $x 等于 true
真假; // 结果为假,但对任何事情都没有影响
顺便说一句,这是一个很好的例子,说明为什么使用括号来明确说明你的意图通常是一种很好的做法,无论是在任何语言中。例如,如果将上述语句 $x = true
和 false 替换为 $x = (true and false)
,则 $x
将按预期设置为 false。
如 here 所述,=
运算符的优先级高于 and
运算符,导致 $x = true
在 true and false
之前计算,这意味着$x
将采用 true
.
的值
这会给你想要的:
$x = (true and false);
顺便说一句,我对此感到惊讶 此代码将输出什么以及为什么?
$x = true and false;
var_dump($x);
令许多人感到惊讶的是,上面的代码将输出 bool(true) 似乎暗示 and
运算符的行为与 or
.
这里的问题是 = 运算符在运算顺序上优先于 and 运算符,因此语句 $x = true
和 false 最终在功能上等同于:
$x = true;
// 设置 $x 等于 true
真假; // 结果为假,但对任何事情都没有影响
顺便说一句,这是一个很好的例子,说明为什么使用括号来明确说明你的意图通常是一种很好的做法,无论是在任何语言中。例如,如果将上述语句 $x = true
和 false 替换为 $x = (true and false)
,则 $x
将按预期设置为 false。
如 here 所述,=
运算符的优先级高于 and
运算符,导致 $x = true
在 true and false
之前计算,这意味着$x
将采用 true
.
这会给你想要的:
$x = (true and false);