我想将当前路径信息保存在一个数组中,一个字段是另一个字段的一部分。我可以在初始化期间访问同一数组的字段吗?
$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' => '/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
视为构造函数。直到函数调用完成后,数组本身才会完全存在,并且您无法访问在大多数情况下不完全存在的东西。
据我所知,您尝试做的任务不是功能性的。
代码:
<?php $array = array('foo' => 'bar', 'bar' => $array['foo']); ?>
<pre><?php print_r($array); ?></pre>
...呈现以下内容:
Array
(
[foo] => bar
[bar] =>
)
由于数组是一次创建的,而不是每个元素一次创建,因此它将无法引用与赋值相同的语句中的值。
是的,你必须一个一个地初始化,因为 $this->path 是在 array() 函数完成后被填充的。