一个非常简单的问题,我想知道php如何处理IF和AND的使用。
说我有以下PHP代码:
if ((pony) && (pony == 2)) {
/* do something */
}
如果小马等于0,代码是否仍会检查小马是否等于2还是会停在那里?
答案 0 :(得分:3)
没有。布尔运算符表现出短路行为。换句话说,PHP一知道整个表达式的结果就会停止评估。
请参阅Logical Operators上的PHP文档。
答案 1 :(得分:1)
@Jonathon Reinhart是正确的,同时您必须认识到在使用之前不需要创建变量。
据说这会起作用:
if ($pony && $pony == 2) {
/* do something */
}
虽然在PHP中使用strict错误,但您需要确保(在您的情况下)使用isset()定义变量pony
。
if (isset($pony) && $pony == 2) {
/* do something */
}
答案 2 :(得分:0)
首先,使用$来定义变量..
$pony = 0;
if (($pony) && ($pony == 2)) {
echo "yeah";
}
/* false */
如果更改$ pony = 2的值,则值为true; 从逻辑上讲,在第一个条件下没有进行任何测试,甚至不是条件。
if($pony){
}
如果您将条件更改为...其中$ pony必须为0且同时2不可能
if (($pony == 0) && ($pony == 2)) {
echo "yeah";
}
如果你想检查$ pony是否有值,请参阅Samuel Cook的回答,isset
if (isset($pony) && $pony == 2) {
/* do something */
}
/* does $pony has a value/initiated AND its value must be 2 */