我很难理解面向对象PHP中的魔术方法 - 例如,<select chosen width="'100%'" ... ></select>
:
__set()
打印出来:
将名称设置为测试
我不理解的是为什么<?php
class Post{
private $name;
public function __set($name, $value){
echo 'Setting '.$name.' to <strong>'.$value.'</strong><br />';
$this->name = $value;
}
}
$post = new Post;
$post->name = 'Testing';
?>
改为&#34; name&#34;在$name
内?
我还希望用简明的英语解释如何以及为何使用__set()
和__set()
。
答案 0 :(得分:1)
$name
已更改为$this->name
,而不是name
。在$this->name
中,它是对象$this
的属性。
通常,您永远不会使用__get()
和__set()
。例如,可以在错误处理中使用它们来访问不可访问的private
属性,例如name
属性。