禁用特定foreach的"无效参数提供"警告

Ema*_*sev 1 php

我可以禁用特定foreach语句的警告,更具体地说是"提供的无效参数"警告吗?

ps我想要一个foreach,当传递时null,而不是抛出错误,将不会执行.

mar*_*rio 8

替代方案,类型不可知,使用类型转换:

foreach ((array)$variable as $s)
Run Code Online (Sandbox Code Playgroud)

将NULL转换为空数组,或将整数/字符串转换为具有单个条目的数组.如果您遍历灵活的数据结构(PHP毕竟是一种动态语言),这有时是可取的.失败方法建议用于捕获无效数据(但应该抛出错误).


Pek*_*ica 5

不,甚至没有@在foreach面前使用(但无论如何这都是不好的做法).

is_array()请事先做一个简单的检查:

if (is_array($variable))
 foreach($variable.......
Run Code Online (Sandbox Code Playgroud)