2011-07-24 25 views
1

我想将当前路径信息保存在一个数组中,一个字段是另一个字段的一部分。我可以在初始化过程中访问同一个数组的字段吗?PHP可能初始数组来自同一个数组的值?

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

还是我必须一个接一个地初始化它们?

回答

2

数组在定义它时仍然未定义。但是,您可以定义其他(临时)变量在飞行中这样做:

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

然而,通常应该没有必要,因为你是在阵列中的数据复制。只是说,你可以做任何你想做的事:)

0

是的,你必须逐个初始化,否则在array()函数完成之后正在填充$ this-> path。

1

您必须逐个初始化它们。

最好把array当作构造函数。在函数调用完成之前,数组本身并不完全存在,并且在大多数情况下您不能访问不完全存在的内容。

+0

函数调用?构造函数? – hakre

+0

好吧,'array'是一个返回数组的函数。但它就像一个构造函数,它返回一个初始化对象。但它是......''阵列'是特别的。 – cwallenpoole

0

据我所知,你要做的任务不是功能性的。

代码:

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

...呈现以下:

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

作为阵列被一次创建的,每个元件不是一次,它不会能够引用的值在与作业相同的陈述中。