简短的问题。
给出以下示例:
$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,但目前无法在其他版本上对其进行测试。