所以,这是我的情况:
我将一些输入存储在一个变量中 ($keywords
)。
这个变量可以是一个字符串(=1 个关键字)——比如 "banana"
,也可以是一个数组(=多个关键字)——比如 array ("banana","apple"“芒果”)
。
这是我使用它的方式:
foreach ($keywords as $keyword)
{
// do sth with $keyword
}
当 $keyword
是一个数组 时,这工作正常,但如果不是,我就会出错。 (很明显)
什么是最有效的解决方法,以避免错误,同时保持我的 foreach
结构不变?
这是我想到的(放在循环之前),但我不太喜欢它:
if (count($keywords)==1) $keywords = array($keywords);
更新:伙计们,我知道 is_array
。我的观点是尽可能优雅地完成它,不要添加代码块或使用 switch
或 if
/else
语句等造成困惑.
最佳答案
简单地将变量转换为数组:
$keywords = (array) $keywords;
如果变量是一个数组,则不会发生任何事情,否则它将被转换为一个数组:
所以
1
将是 array(1)
和
'keyword'
将是 array('keyword')
关于php - 将 foreach 与可能不是数组的变量一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11759393/