gpt4 book ai didi

php - 防止 PHP 中的 'no code' foreach 循环

转载 作者:行者123 更新时间:2023-12-03 02:52:36 24 4
gpt4 key购买 nike

在使用 C# 多年后,我开始转向 PHP,不敢相信我刚刚花了几个小时来尝试调试它。基本上,无论我的收藏中有多少帖子,只有最后一篇会被更新。

foreach($posts as $post); {
$post->name = 'updated';
$post->save();
}

当然,问题是 foreach 末尾的分号,这意味着什么也没做,而我期望为数组中的每个项目运行的代码块,只在空的 foreach 循环之后运行一次已处理。代码没有失败,因为 $post 具有集合中最后一项的值。我习惯了 C# 来保护我免受这种愚蠢行为的影响,因为 $post 只在 foreach 循环期间有效。

因此,我的问题是,有没有办法在 PHP 中防止这种情况发生,因此至少代码在运行时失败,$post 要么为空,要么未定义?

最佳答案

请记住,该问题要求在运行时提供保护,简短的回答是否定的。

根据PHP documentation PHP 中只有两种类型的作用域:全局作用域(因此变量在任何地方都可用)和局部函数作用域(变量仅在声明它的函数内部可用)。

由于您的代码有效,因此只有在 $posts 数组没有元素且因此 $post 未定义时,您才会收到警告。这只会触发一个通知:

Notice: Undefined variable: post

关于php - 防止 PHP 中的 'no code' foreach 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58574054/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com