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 回答