在foreach中投射阵列被认为是一种不好的做法?

时间:2017-03-08 09:43:54

标签: php arrays foreach casting

在启动foreach循环时转换为数组被认为是一种不好的做法。像这样:

foreach ((array) $examples as $example) {
    // Do stuff
}

这可以防止

  

为foreach()提供的参数无效

发生。

或者首先检查一个数组是否是更好的做法:

if ( is_array($examples) ) { 
    // Do the loop 
}

1 个答案:

答案 0 :(得分:0)

有时您无法将变量强制转换为数组。所以你最好检查它是否可迭代。您可以使用此代码检查变量是否可以在foreach中遍历或使用:

   if( !is_array( $examples ) && !$examples instanceof Traversable )