标题重写为:"foreach()函数的参数无效"
P粉419164700
P粉419164700 2023-08-21 12:03:34
[MySQL讨论组]

对我来说,经常遇到处理既可以是数组又可以是空变量的数据,并将这些数据提供给一些 foreach

$values = get_values();

foreach ($values as $value){
  ...
}

当你用不是数组的数据来提供 foreach 时,会收到一个警告:

警告:foreach() 中提供的参数无效 in [...]

假设无法重构 get_values() 函数以始终返回数组(向后兼容性,不可用的源代码,或其他任何原因),我想知道避免这些警告的最清洁和最高效的方法是什么:

  • $values 转换为数组
  • $values 初始化为数组
  • if 包装 foreach
  • 其他(请提供建议)


P粉419164700
P粉419164700

全部回复(2)
P粉811349112

这个怎么样?它更简洁,而且都在一行中。

foreach ((array) $items as $item) {
 // ...
 }
P粉771233336

个人而言,我觉得这是最干净的 - 不确定是否是最有效的,注意!

if (is_array($values) || is_object($values))
{
    foreach ($values as $value)
    {
        ...
    }
}

我偏好的原因是当你一开始就没有任何东西时,它不会分配一个空数组。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号