爲什麼我不能做這樣的事情的時候我知道,myobject
財產將被已聲明如下:未定義的屬性
define('title','boats');
myobject->title
;
但這個工程:
myobject->boats
這甚至好的做法呢?
爲什麼我不能做這樣的事情的時候我知道,myobject
財產將被已聲明如下:未定義的屬性
define('title','boats');
myobject->title
;
但這個工程:
myobject->boats
這甚至好的做法呢?
,因爲這是嘗試訪問對象的title
財產不能使用
$myobject->title
。如果此屬性不存在,則會觸發錯誤。
您可以使用
$myobject->{title}
,但我寧願看到你使用一個變量而不是常量,例如
$title = 'boats';
echo $myobject->$title;
理想情況下,你會知道你想要的屬性來訪問和使用它的名字適當
$myobject->boats
爲什麼我當我知道myobject的屬性已經被聲明時,不會執行類似以下操作:
可能因爲PHP期望您使用方法名稱來調用它。有選擇,雖然:
<?php
define('METHOD', 'bar');
class Foo {
public function bar() {
echo "Foo->bar() called.\n";
}
}
$foo = new Foo;
call_user_func(array($foo, METHOD));
// or
$method = METHOD;
$foo->$method();
編輯:嗯,我似乎有誤解。我的版本用於調用其名稱在常量中定義的方法,而您正在尋找調用屬性的方法。那麼,我將把它留在這裏以備將來參考。