public 和 private在__callstatic 的注意事项

 

class Student{

 

private static $arr;

 

private function __clone(){

 

}

 

public static function __callstatic($id,$name){
self::$arr[$id] = $name;
 
}

 

public function get($id,$name){
return $id.$name;
}
}
$stu = new Student();
$stu::get(1,'tim');
当使用了 __callstatic 魔术方法时要注意方法名不能相同比如上文中的 get()就会报错
他会先去访问类中存在的相同方法名的公共方法
把 public 改为 private或者protected也可以避免 这个问题
 
 
posted @ 2019-03-29 15:46  未入门的码农  阅读(241)  评论(0编辑  收藏  举报