PHP - 空数组

Ale*_*lex 12 php arrays variables

(array)$someemptyvariablethatisnotarray返回array([0] =>)而不是array()

我怎么能这样做,所以当我在foreach()中使用它时,我得到一个没有迭代的空数组?

tri*_*ett 25

$var = array();
Run Code Online (Sandbox Code Playgroud)

将清空一个数组.这就是你要追求的吗?


pow*_*tac 19

您正在使用的功能称为" 强制转换 ".这意味着变量被强制成为给定类型,在您的示例中是一个数组.在PHP中,如何转换var并不总是显而易见的!

在您的示例中,$ someemptyvariablethatisnotarray变为一个数组,其中一个条目具有NULL值.

PHP文件说:

目前未定义自动转换为数组的行为.

要解决您的代码,我建议这样的事情:

if (!is_array($someemptyvariablethatisnotarray) {
    $someemptyvariablethatisnotarray = array();
}
Run Code Online (Sandbox Code Playgroud)

  • 如果您将NULL作为数组转换,它将变为空数组,如果您转换标量值(即使是空字符串,因为它不是NULL),它将成为具有该值的数组,而不是NULL值. (2认同)