2011-07-24 20 views
1

現在のパス情報を配列に保存し、あるフィールドは別のフィールドの一部です。初期化中に同じアレイのフィールドにアクセスできますか?PHPは同じ配列から値を初期配列にできますか?

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

1つ1つずつ初期化する必要がありますか?

答えて

2

配列はまだ定義していないときは定義されていません。しかし、あなたは、配列内のデータを複製しているとして、通常、必要とされるべきではないと

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

:しかし、あなたはその場でこれを行うには、他の(一時的な)変数を定義することができます。ちょうど言って、あなたは何でもしたいことをすることができます:)

0

はい、array()関数が完了した後、beacuse $ this-> pathがいっぱいになります。

1

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] => 
) 

配列がない、一度要素ごとに、一度作成されると、値を参照することができません割り当てと同じステートメントで

関連する問題