【发布时间】:2010-12-09 06:29:48
【问题描述】:
PHP 5 引入了魔术方法 __get() 和 __set()。据我了解,这是编写每个成员的 getter 和 setter 的捷径;
<?php
class Person {
private $firstname;
private $lastname;
function __set($var, $name) {
$this->$var = $name;
}
function __get($var) {
return $this->$var;
}
}
$person = new Person();
$person->firstname = "Tom";
$person->lastname = "Brady";
echo $person->firstname . " " . $person->lastname;
// print: Tom Brady
?>
我的问题是,这就像公开成员变量一样。
class Person {
public $firstname;
public $lastname;
}
这不违反 OOP 原则吗?还有什么意义?
【问题讨论】:
-
这个页面有一些有用的例子:php.net/manual/en/…