從來就試圖瞭解是否有一個神奇的功能在PHP,當我試圖訪問一個對象的屬性類似於下面可以觸發功能。有沒有一種方法,使__get和__set觸發類定義,但空性
class User {
public $groups;
function loadGroups(){
$this->groups[] = "a list of groups";
}
function __get($name){
// Trigger on defined property such as groups
if($name == "groups"){
$this->loadGroups();
return $this->groups;
}
}
}
$user = new User();
foreach($user->groups as $group) // Is it possible to load $user->groups when it's accessed?
echo $group;
我知道,如果財產是連壽的屬性設置爲null或undefined類中定義的__get & __set不會觸發,但沒有任何其他的方式來觸發買點定義的屬性還是必須爲所有這些屬性創建getter和setter,並確保在我需要訪問該屬性時始終調用這些屬性,並且要確保在訪問它時加載它?我希望不是因爲它會導致我正在使用的當前系統發生很多變化。
我很感激的任何信息或幫助我能關閉這個章節。
// ZarToK
負荷? – exussum 2014-11-24 16:57:39
@exussum那麼將工作ofc,但我不想加載更多然後是需要的,這是一個小例子類。實際的類中含有大量的這些陣列和獲取它從數據庫 – ZarToK 2014-11-24 17:01:16
名單你就不能註釋掉$組的聲明在這種情況下,然後在__get確定要裝入的一個。 – Dexa 2014-11-24 17:03:35