嘿,在最近的一个项目中,我得到了这个工作,并且非常惊讶于这样的剪辑工作。
$parentRef = &$elements[$targetPath]->
{$contentTypeMap[$contentTypeIdMap[$contentTypeId]]};
if(is_array($parentRef)) {
$parentRef = &$parentRef[];
}
$parentRef = $element;
它非常直观,它可能会以这种方式工作,但究竟是
$parentRef[]
返回来使其工作?
如果我var_dump
,我会null
。
这是一个似乎有效的简化示例。
<?php
$arr = [1, 2];
$ref = &$arr[];
$ref = 3;
foreach($arr as $n) {
echo $n;
}
此示例返回123只是为了验证它是否有效。
答案 0 :(得分:1)
在您的示例中,$ arr []将在数组中创建具有NULL值的新元素。 &符号是对这个位置的引用,所以当你将某些内容存储到$ ref时,它将被存储在这个新位置,因为$ ref只是引用(类似于指针,但它不是指针!)到数组中的这个新元素< / p>