PHP - 如何正确使用带有变量的大括号?

时间:2011-12-09 03:53:12

标签: php syntax curly-braces

我阅读了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 个答案:

答案 0 :(得分: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 $ 

答案 1 :(得分:0)

期待什么

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