简短的问题。
给出以下示例:
$arr = array();
$arr[0] = false ?: NULL;
var_dump($arr[0]);
var_dump($arr[1]);
var_dump(isset($arr[0]));
var_dump(isset($arr[1]));
var_dump(count($arr));
结果输出为:
NULL
NULL
bool(false)
bool(false)
int(1)
为什么生成的数组的大小为1而不是0,是否有任何方法可以防止在使用三元运算符时发生这种情况?这是一个错误还是预期的行为?
不过,我正在运行php 5.3.3-7,但暂时无法在不同的版本上测试它。