PHP可以用相同数组的值来初始化数组


PHP possible to initial array with value from same array?

我想在数组中保存当前路径信息,一个字段是另一个字段的一部分。我可以在初始化期间访问同一个数组的字段吗?

$this->path = array
(
     'rel_image' => '/images',
     'document_path' => '/a/file/path',
     'path' => $this->path['document_path'].$this->path['rel_images']
);

还是我必须一个一个地开头?

在定义数组时它仍然是未定义的。但是,您可以动态地定义其他(临时)变量来执行此操作:

$this->path = array
(
     'rel_image' => $r = '/images',
     'document_path' => $p = '/a/file/path',
     'path' => $p.$r
);

但是,当您在数组中复制数据时,通常不需要这样做。只是说,你可以做任何你想做的:)

必须逐个初始化。

最好将array视为构造函数。在函数调用完成之前,数组本身并不完全存在,并且在大多数情况下,您无法访问不完全存在的东西。

是的,您必须逐个初始化,因为在array()函数完成后,$this->路径将被填充。

据我所知,你要做的作业不是功能性的。

代码:

 <?php $array = array('foo' => 'bar', 'bar' => $array['foo']); ?>
 <pre><?php print_r($array); ?></pre>

…呈现以下内容:

Array
(
    [foo] => bar
    [bar] => 
)

由于数组是一次性创建的,而不是每个元素创建一次,因此它不能引用与赋值语句相同的值。