编辑:为了使这个问题不完全没用,我正在改变主题。
为什么当你有 contninue 之类的错字时 PHP 不会抛出错误;在错误报告设置为 E_STRICT 时的代码中。
请参阅我下面的原始问题。我试图继续一个foreach循环,但不小心写了继续;而不是继续;但是在运行脚本时,我没有收到来自 NetBeans IDE 或 PHP 的警告或错误。我有 E_STRICT 和 E_ALL 错误报告,HTML 错误,显示错误等。有没有办法让 PHP 编程更能抵御这些愚蠢的错误?请注意,没有名为 contninue 的变量或函数。事实上,我可以在一行中输入几乎任何内容,包括 dsafdsfdafdsafdsafdsafdsa_FDA9812324398s;它不会抛出错误。
原始问题: 为什么 PHP 中的每个循环不继续跳到下一个循环?
发布这样的问题有点尴尬,但这里......
这是一个函数的一小段代码。我只是试图重新创建一个数组,过滤掉数组中满足特定条件的一个或多个项目,在这种情况下匹配一个 postId。(如果您想知道,这是 Wordpress 中的开发。)
在我简单的 foreach 循环中,继续;命令似乎没有做它的工作。至少它没有表现出我对我使用过的任何其他语言(C、C#、MEL、Javascript 等)的期望。回显的输出总是包括“应该退出但它没有!” 即使在继续之后;并且永远不应该被执行。此外,即使 "REMOVED" ,结果数组也始终包含过滤后的内容。$postId 显然跑了。
$posts = get_posts( $args ); // posts is an array of objects
if($posts == null) return; // no posts
if($includeCurrentPost || $postId < 0) return $posts; // we are including all posts, so just return it
// Remove current post id from list since excluding
$newPosts = array();
$count = 0;
foreach($posts as $p) {
if($p->ID == $postId) {
echo("REMOVED " . $postId);
contninue;
echo("should have exited but it did not!");
}
$newPosts[$count++] = $p;
}
return $newPosts;
好吧,我通常用 C# 编程,并认为自己是一个体面的中级程序员。这没有任何意义。@_@ 我猜它会变成一些愚蠢的语法错误,PHP 只是让我逃脱了我看不到的...
PHP 版本它 5.3 东西,Apache,在 Windows Vista 上运行。