<?php
error_reporting(E_ALL);
ini_set('display_errors', true);
class Person {
private $data;
public function __construct($data) {
$this->data = $data;
}
public function __get($prop) {
return $this->data[$prop];
}
}
$data = array('name' => 'Mark');
$person = new Person($data);
echo $person->get('name');
?>
不應該工作嗎?我得到了Fatal error: Call to undefined method Person::get()
,但我不知道爲什麼。根據magic方法的文檔,這段代碼應該可以正常工作。爲什麼我的getter不工作?
http://php.net/manual/en/language.oop5.overloading.php#object.get
有沒有線在手動中說$ person-> get()調用__get()方法:)另外,必須調用get()會使「魔法方法」定義變得毫無意義 – 2014-10-30 11:27:29