当前位置: 首页 > 面试题库 >

为foreach()提供了无效的参数

程胡非
2023-03-14
问题内容

我经常碰巧处理可以是数组或null变量的数据,并foreach用这些数据提供一些数据。

$values = get_values();

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

当为foreach提供非数组数据时,会收到警告:

警告:[…]中为foreach()提供了无效的参数

假设无法重构该get_values()函数以始终返回数组(向后兼容性,不可用的源代码,无论其他原因),我想知道哪种方法最有效,最有效的避免了这些警告:

  • 转换$values为数组
  • 初始化$values为数组
  • 包裹foreachif
  • 其他(请建议)

问题答案:

我个人认为这是最干净的-不确定它是否最有效!

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

我偏爱的原因是,当您一无所有时,它不会分配空数组。



 类似资料:
  • 嗨,我有多个数据库表('dearchs,suppliers,histories'),并试图在dearches索引上显示与dearches相关的供应商数据(在dearchs表supplier_id中用作外键),但它显示错误:为foreach()提供的参数无效 注意只有经销商在索引上显示,我使用资源路由 索引代码: 控制器代码: 根据https://laravel.com/docs/5.8/eloqu

  • 我试图在一个自定义模块内以编程方式更新一个产品的价格。这是我的代码: 你知道是什么引起的吗?同样的代码在我的dev magento设置工作,但在生产magento中,这个错误开始出现,所以我有点困惑。

  • 第一次在Windows 7x64上启动IntelliJ IDEA Community Edition 14.0.2时,我在试图导入示例libGDX gradle配置时收到以下错误: IntelliJ14提供的javaHome似乎无效 IDE正在中查找java运行时,但是这些文件存在于这个目录之外的子目录中:。 我的解决方案是将的内容复制到上一级,这解决了问题--但感觉不是正确的做法。 这被记录为一

  • 我正试图在Apache 2.2.15-30(CentOs 6.5)上设置Kerberos身份验证,并且面临一个无法调试或解决的问题。我可以在KDC日志中看到TGS请求,Firefox发送了正确的授权:协商头,但Apache中出现了问题,我得到了HTTP 500。 有人知道问题出在哪里吗?如果有任何评论,我将不胜感激。 谢谢你马丁

  • 问题内容: 我正在我的iOS(Swift)应用中实现Uber的请求端点。Request API / Endpoint要求用户通过应用进行身份验证,这是doc。 为此,我正在使用此Oauth2.0库 我所做的是 借助给定的安装说明,成功地将库集成到我的项目(xCode)中。 在我的AppDelegate中 在我的Appdelegate 方法中 不要忘记注册url方案,即() 转到应用程序的目标->信

  • 我正在WordPress中创建一个插件,我试图让谷歌工作表脚本工作,但我找不到方法。 我尝试了这里所有可用的代码和不同的源代码,但我找不到任何可以让它工作的东西。这是我得到的错误: 在浏览器中打开以下链接:https://accounts.google.com/o/oauth2/auth?response_type=code