我阅读了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 :(得分:4)
可以在对象类型上使用括号,例如,模拟数组索引。假设$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"