有一个类属性值的变量?

时间:2010-02-21 19:05:12

标签: php

在我班上我有一些属性。我希望这些的一些值有另一个属性。但我注意到它是不可能的。

代码:

$property = "my name is: $this->name";

生成错误。

我使用构造函数设置$ this->名称。

你可以以某种方式实现这一目标吗?我希望“我的名字是:”在属性中定义,而不是在构造函数中定义,如果可能的话。

感谢。

3 个答案:

答案 0 :(得分:1)

你可以用变量做一些事情:

$property = 'name';

echo "my name is: {$$property}";

在这种情况下,$ property评估为'name'并且$是前置的,因此$ name是结果。这种方法可能有危险,因为我希望你能欣赏。

我会质疑你在这里要做什么。如果您想模板化消息,请考虑以下内容:

$template = 'hi my name is %name%';
echo str_replace('%name%', $name, $template);

更一般地说,在设计语言时使用对象属性,并在必要时添加生成输出字符串的方法。变量通常是不必要的。

答案 1 :(得分:1)

您需要做的就是添加括号。

$property = "my name is: {$this->name}";

虽然它还取决于它给出的错误。是否说错误发生在这条特定的行上?

答案 2 :(得分:0)

您必须使用$ this->变量来访问对象自己的变量。

$this->property = "my name is: " . $this->name;

这仅适用于对象本身。您可以在此处找到有关此内容的更多信息:http://ch2.php.net/manual/en/language.oop5.visibility.php