【发布时间】:2011-11-23 13:05:36
【问题描述】:
简短的问题。
举个例子:
$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,但目前无法在其他版本上对其进行测试。
【问题讨论】:
标签: php arrays null ternary-operator array-key