【发布时间】:2011-07-24 10:33:55
【问题描述】:
在循环中使用布尔运算的 PHP 中似乎存在错误。
在这个特定的示例中,我测试是否设置了所有重要的表单字段(由对象表示)。 var_dump 用于调试目的。
$allset = true;
foreach ($forms as $one):
$allset = $one->wasSet() and $allset;
endforeach;
var_dump($allset);
foreach ($more as $one):
$allset = $one->wasSet() and $allset;
endforeach;
var_dump($allset);
$allset = $iwasthere->wasSet() and $allset;
var_dump($allset);
此代码可能会失败。可能第一个转储返回 false,第二个转储返回 true。
我的问题。
我怎样才能避免这个错误并拥有简洁干净的代码?
附言
我现在使用if 块。
【问题讨论】:
-
当我发现有人使用
foreach(): ... endforeach;语法时,我仍然感到惊讶:-) -
我没有看到任何错误:?我也无法想象,
$forms或$more应该包含什么。 @Alvaro:如果我混合使用 PHP/HTML,我会使用这种语法。很难找出}属于哪个语句。 :)