$ array [] = new stdClass;为什么array []而不是数组

时间:2017-10-04 15:34:36

标签: php arrays

$array = [];

$array[] = new stdClass; //will return an array
$array = new stdClass; //will not

将$ array声明为数组似乎很奇怪。忘记括号 $array = new stdClass; 并且$array不再是数组。

2 个答案:

答案 0 :(得分:0)

$array[] = new stdClass;将新的stdClass添加到空数组$array中。

$array = new stdClass;用新的stdClass替换空数组$array

答案 1 :(得分:0)

$array = ...

$array[] = ...

做很多不同的事情。第一个创建或覆盖变量,第二个附加到现有变量,假设它存在。

所以当你说

$array[] = new stdClass;

你说“将一个新的stdClass附加到我现有的数组”。变量仍然是一个数组,它现在只有一个额外的元素。

如何在PHP中首次声明变量对于覆盖它时发生的情况没有任何区别 - 原始文件已经消失,并被您指定的任何内容替换。