我经常会处理可以是数组或空变量的数据,并向大约foreach个数据提供这些数据.

$values = get_values();

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

当您向foreach提供非数组的数据时,会收到一条警告:

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

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

  • $values投进数组
  • 初始化$values到数组
  • if包装foreach
  • 其他(请推荐)

推荐答案

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

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

我更喜欢的原因是,当您一开始什么都没有的时候,它不会分配空array.

Php相关问答推荐

Laravel 9如何过滤$的项目与结果?

如何使用php-amqplib连接到ActiveMQ Classic Docker镜像

WHERE方法不能与有效查询Laravel一起使用

如何在UML类图中可视化变量引用数组

按列值将二维数组排序为不超过N个的递增组

基于自定义域的每个购物车项目的WooCommerce定制数量输入步骤

使用HPOS过滤WooCommerce中的订单列表

为什么WooCommerce的动作钩子';woocommerce_checkout_update_order_review';包含旧信息?

在WooCommercel邮箱通知上添加来自Apaczka插件的选定交付点

如何在其他数组php中创建具有关联数组的数组

产品页面自定义复选框可对 WooCommerce 购物车小计启用百分比折扣

仅在管理员新订单通知中显示WooCommerce订单商品自定义元数据

$_SERVER 超全局变量在 PHP 中是否保证可写?

PHP:如何将多列sql查询结果转换成数组

如何使用动态变量定义 bind_result?

如何用 php ML 解决这个问题?

如何故意创建不同的错误(404,500,419)? Lavravel PHP

laravel 中的 OrderBy json 列

遇到特定键时修改二维数组以创建嵌套数据集

Laravel 从嵌套数组的第二级获取最后一项