PHP - Как я могу использовать фигурные скобки с переменной правильно? - PullRequest
3 голосов
/ 09 декабря 2011

Я прочитал документ 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};

Не могли бы вы, ребята, сказать мне, почему это не сработало и когда я могу правильно использовать фигурные скобки с переменной?

Ответы [ 2 ]

4 голосов
/ 09 декабря 2011

Живой пример

Скобки можно использовать для типов объектов, например, для имитации индекса массива.Предположим, что $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 $ 
0 голосов
/ 09 декабря 2011

Что вы ожидаете ?

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