现在的位置: 首页 > 综合 > 正文

php类中常用的魔术方法

2018年04月25日 ⁄ 综合 ⁄ 共 1113字 ⁄ 字号 评论关闭

1.__construct() //构造函数,
2.__destruct()//析构函数,
3.__call() 、__callStatic() //调用一个不可访问的方法、调用不可访问的静态方法时被调用

class demo1 {
 public function __call($name, $arguments) {  echo '你调用了不存在或不可访问的方法$name'.' '.implode(', ', $arguments); } /*php version 5.3.0 之后才可以*/
 public static function __callStatic($name, $arguments) {  echo '你调用了不存在或不可访问的静态方法$name'.' '.implode(', ', $arguments); }
}
$aa = new demo1();
$aa->runTest('haha'); //你调用了不存在或不可访问的方法runTest	haha 
demo1::yrt(haha); //php version 5.3.0 之后才可以  //你调用了不存在或不可访问的静态方法runTest	haha

4.__get()、__set() //在给不可访问属性赋值时,__set() 会被调用。读取不可访问属性的值时,__get()会被调用。
5.__isset()、__unset()//当对不可访问属性调用 isset() 或 empty() 时,__isset() 会被调用。当对不可访问属性调用 unset() 时,__unset() 会被调用。
6.__toString()//当echo一个对象时调用该方法
7.__clone()//复制一个对象时调用

class person {
 private $name;
 private $age; public function __construct($name, $age) {  $this->name = $name;  $this->age = $age; } 
public function say() {  echo '我的名字叫: '.$this->name;  echo '我的年龄是: '.$this->age.'<br>'; }
 public function __clone() {  $this->name = '我是假的'.$this->name;  $this->age = '我的年龄不是'.$this->age;}
}
$person1 = new demo1('燕睿涛', 21);
$person1->say(); //我的名字叫: 燕睿涛我的年龄是: 21
$person2 = clone $person1;
$person2->say(); //我的名字叫: 我是假的燕睿涛我的年龄是: 我的年龄不是21

欢迎交流,我是luluyrt@163.com

抱歉!评论已关闭.