{}中的字符串是什么意思?

时间:2011-09-19 12:19:40

标签: php

我有字符串

$name = 'user';

$run->{$name};

我有结果通知:

Undefined property: run::$user

我有控制器方法用户,但错误的是我看到字符串ang $ char。

这是一个特殊的字符吗?

5 个答案:

答案 0 :(得分:3)

如果obj->{$foo}中的字符串为obj->bar,则

$foo相当于'bar'

有关详细信息,请参阅http://php.net/manual/en/language.variables.variable.php

如果obj->bar实际上是方法,则应将其称为obj->bar() ...

因此object->{$foo}() - 注意括号。

答案 1 :(得分:0)

$run->{$name}就像你写的$run->user一样,当你想使用变量值

来访问对象的属性时使用

所以如果$name = 'user';

然后$run->{$name}将尝试获取名为“user”的属性

答案 2 :(得分:0)

$name = "user";
$run->{$name}();

运行方法user();

答案 3 :(得分:0)

如果你在控制器中有一个方法(你在$run中捕获了一个实例),你可以使用:

$run->$name();

答案 4 :(得分:0)

请参阅variable variables当只有部分字符串是变量名称且PHP会错误地解释它时,需要括号。在所有其他情况下,它们是可选的,并且为了更好的可读性而放置(与表达式中使用()括号相同的方式)。由于您指的是方法而不是属性,因此必须使用()。即使不使用变量变量也是如此:

$foo->user // access to property
$foo->user() // method call