3

私は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};

なぜそれが機能しなかったのか、そしていつ変数で中括弧を正しく使用できるのか教えてもらえますか?

4

2 に答える 2

4

実例

ブラケットは、たとえば、配列インデックスをシミュレートするためにオブジェクトタイプで使用できます。それ$arrが配列型と$objオブジェクトであると仮定すると、次のようになります。

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

たとえば、もっと楽しくすることができます。

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

さらに:

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

編集:あなたの問題- 変数の変数

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

var_dump($$full); // yeap! $$ instead of $ 
于 2011-12-09T03:56:23.713 に答える
0

何を期待していますか?

$id = 10;
$no = 1;
echo "${id}.${no}";  // prints "10.1"
于 2011-12-09T03:57:09.953 に答える