2011-12-09 1 views
3

私はPHPのドキュメントを読んで、私はこれを見た:PHP - 変数を含む中かっこを正しく使用するにはどうすればよいですか?

class foo{ 
     var $bar = 'I am a bar'; 
    } 

    $foo = new foo(); 
    $identity = 'bar'; 

    echo "{$foo->$identity}"; 

をそして、私は誰かが次のように書いて見ました:

if (!isset($ns->job_{$this->id})){ 
    //do something 
} 

しかし、私は、このコードを試みたとき、それは動作しませんでした:

$id1 = 10; 

$no = 1; 

echo ${id.$no}; 

なぜあなたはそれがうまくいかなかったのか、変数で正しくブレースを使うことができるのでしょうか?

+0

あなたの最後の例はうまくいき、印刷します10.あなたは5.0より前のバージョンのPHPですか? – Borodin

+0

@Borodin私はPHP 5.3.8を使用します – hungneox

答えて

4

Live example

ブラケットは、配列インデックスをシミュレートするために、例えば、オブジェクト・タイプに使用することができます。 $arrが配列型と$obj対象とすると、我々は持っている:

$arr['index'] === 
$obj->{'index'} 

あなたはそれがより楽しく作ることができ、例えば:

$arr["index{$id}"] === 
$obj->{"index{$id}"} 

さらに:

$arr[count($list)] === 
$obj->{count($list)} 

編集:あなたの問題 - variable of variable

// Your problem 
$id1 = 10; 
$no = 1; 
$full = "id{$no}"; 

var_dump($$full); // yeap! $$ instead of $ 
+0

[ライブサンプル](http://codepad.viper-7.com/iOnnzI)が追加されました。 ;) –

0

あなたはとお考えですか?をお探しですか?

$id = 10; 
$no = 1; 
echo "${id}.${no}"; // prints "10.1" 
+0

申し訳ありませんが、$ id1を1で印刷したいと思います。 – hungneox

関連する問題