在我的班級我有一些屬性。我希望這些值有一個另外的屬性。但我注意到它不可能。有一個類屬性值的變量?
代碼:
$property = "my name is: $this->name";
產生錯誤。
我用構造函數設置$ this-> name。
你能以某種方式完成這個嗎?我希望在屬性中定義「我的名字是:」,如果可能的話,不在構造函數中定義。
謝謝。
在我的班級我有一些屬性。我希望這些值有一個另外的屬性。但我注意到它不可能。有一個類屬性值的變量?
代碼:
$property = "my name is: $this->name";
產生錯誤。
我用構造函數設置$ this-> name。
你能以某種方式完成這個嗎?我希望在屬性中定義「我的名字是:」,如果可能的話,不在構造函數中定義。
謝謝。
你可以做一些可變的變量:
$property = 'name';
echo "my name is: {$$property}";
在這種情況下,$屬性的計算結果爲「名」和$被預先計劃,因此$名稱是結果。這種方法可能會有危險,因爲我希望你能欣賞。
我會質疑你在這裏做什麼。如果你想模板的消息,可以考慮這樣的事情:
$template = 'hi my name is %name%';
echo str_replace('%name%', $name, $template);
更一般地,使用對象的屬性作爲語言的設計和添加方法在必要時產生輸出字符串。變量變量通常是不必要的。
你必須使用$ this->變量來訪問一個對象自己的變量。
$this->property = "my name is: " . $this->name;
這隻適用於對象本身。你可以在這裏找到更多的信息:http://ch2.php.net/manual/en/language.oop5.visibility.php。
它沒有工作... – ajsie 2010-02-21 19:10:30
所有你需要做的就是添加括號。
$property = "my name is: {$this->name}";
雖然它也取決於它給出的錯誤。它是否說錯誤發生在這個特定的線上?
是的,這是爲了模板的目的。你的第二個解決方案看起來不錯 – ajsie 2010-02-21 19:12:23