是我一个人,还是让赋值的优先级高于任何其他运算符只是奇怪?我刚刚遇到的 PHP 示例:
function test($param1) {
$result = TRUE;
for ($i = 0; $i <; strlen($param1); $i++) {
if (!(ord($param1[$i]) >= 65 && ord($param1[$i]) <=90)) {
$result = $result && FALSE;
}
}
return $result;
}
调用此函数的目的是检查字符串是否包含 AZ 范围内的所有字符(如果有更好的方法,很高兴听到它们)。关键部分是$result = $result && FALSE
我认为会评估右侧FALSE
然后分配$result
该值的部分。
但是没有。这个小错误/功能需要一些跟踪。
似乎$result = $result
首先执行分配,然后执行操作TRUE && FALSE;
。实际上,我必须给出明确的指示才能说出$result = ($result && FALSE);
这看起来很奇怪。
无论如何,我不明白这有什么特别有用的“功能”?有什么想法还是我错过了一些非常基本的东西?