魔术方法__set()和__get()是不是一定要声明为public?我的声明为private时,在类外面调用,浏览器提示为“要将__set()和__get()设为public”,可是很多资料书上都可以声明为private啊?
解决方案 »
- 深入PHP:面向对象、模式与实践(第2版) 高清PDF版下载
- php代码求解!!这个是采集
- PHP很强大,散分!
- php对oracle的一个操作类,部分没看懂
- php无法上传unable to create a temporary file
- php x64 怎么和 apache 绑定?
- 北京地区诚聘PHP经验4年+的中高级程序员,薪资1w左右
- CSDN论友们,我爱你们,我愿意给你们充话费!!!
- Fatal error: Uncaught exception 'PHPExcel_Reader_Exception' with message 'Could
- ThinkPHP如何WebService调用接口
- PHP现在用途疑惑
- discuz.语言包切换 (中英双语切换)
请永远的删除这些资料,因为他是在骗你!
function __set($name, $value) {
echo "你试图对属性 $name 赋值为 $value";
}
function __get($name) {
echo "属性 $name 尚不存在";
}
}$p = new T;
$p->aaa = 123;
$p->aaa;
private $name;
private $sex;
private $age;
function __construct($name="",$sex="男",$age=9){
$this->name=$name;
$this->sex=$sex;
$this->age=$age;
}
private function __set($propertyName,$propertyValue){
if($propertyName=="sex"){
if(!(propertyValue=="男")||(propertyValue=="女"))
return;
}
if($propertyName=="age"){
if(($propertyValue>150)||($propertyValue<0))
return;
}
$this->propertyName=$propertyValue;
}
public function say(){
echo "My name is ".$this->name.",Sex:".$this->sex.",Age:".$this->age."<br>.";
}
}$person1=new Person("zhangsan","男",20);
$person1->name="李四";
$person1->sex="女";
$person1->age=80;
$person1->sex="保密";
$person1->age=800;
$person1->say();?>
http://www.php.net/manual/zh/language.oop5.overloading.php"所有的重载方法都必须被声明为public。"