$array = [];
$array[] = new stdClass; //will return an array
$array = new stdClass; //will not
将$ array声明为数组似乎很奇怪。忘记括号
$array = new stdClass;
并且$array
不再是数组。
答案 0 :(得分:0)
$array[] = new stdClass;
将新的stdClass添加到空数组$array
中。
$array = new stdClass;
用新的stdClass替换空数组$array
。
答案 1 :(得分:0)
$array = ...
和
$array[] = ...
做很多不同的事情。第一个创建或覆盖变量,第二个附加到现有变量,假设它存在。
所以当你说
时$array[] = new stdClass;
你说“将一个新的stdClass附加到我现有的数组”。变量仍然是一个数组,它现在只有一个额外的元素。
如何在PHP中首次声明变量对于覆盖它时发生的情况没有任何区别 - 原始文件已经消失,并被您指定的任何内容替换。