php魔术方法介绍
发布时间:2022-07-29 14:05:18 所属栏目:PHP教程 来源:互联网
导读:php在面向对象部分有很多相关的魔术方法,这些方法为面向对象实现提供了便利,本文将详细介绍魔术方法 构造方法 大多数类都有一种称为构造函数的特殊方法。当创建一个对象时,它将自动调用构造函数,通常用它执行一些有用的初始化任务 void __construct ([ m
php在面向对象部分有很多相关的魔术方法,这些方法为面向对象实现提供了便利,本文将详细介绍魔术方法 构造方法 大多数类都有一种称为构造函数的特殊方法。当创建一个对象时,它将自动调用构造函数,通常用它执行一些有用的初始化任务 void __construct ([ mixed $args [, $... ]] ) 如果子类中定义了构造函数则不会隐式调用其父类的构造函数。要执行父类的构造函数,需要在子类的构造函数中调用 parent::__construct()。如果子类没有定义构造函数则会如同一个普通的类方法一样从父类继承(假如没有被定义为 private 的话) function __construct() { print "In BaseClass constructor "; } }class SubClass extends BaseClass { function __construct() { parent::__construct(); print "In SubClass constructor "; } } 析构方法 与构造方法相对的就是析构方法。析构方法是PHP5新添加的内容,在PHP4中没有析构方法。析构方法是在对象被销毁之前自动调用的方法,主要执行一些特定的操作,例如关闭文件,释放结果集等 与构造方法类似,一个类的析构方法名称必须是两个下划线 __destruct( )。析构函数不能带有任何参数 <?phpclass MyDestructableClass { function __construct() { print "In constructor "; $this->name = "MyDestructableClass"; } function __destruct() { print "Destroying " . $this->name . " "; } }//In constructor Destroying MyDestructableClass$obj = new MyDestructableClass();?> 不可访问属性 get() 读取不可访问属性(protected、private)时,__get()会被调用,并将属性名以第一个参数(string)传进此方法中 public mixed __get ( string $name ) }$d1 = new demo;$d1->protected;//111protected111$d1->public;$d1->private;//111private111?> set() 在给不可访问属性(protected、private)赋值时,__set() 会被调用,并将属性名以第一个参数(string),值作为第二参数(mixed)传进此方法中 public void __set ( string $name , mixed $value ) echo "0{$name}0{$value}<br>"; } } isset() 当对不可访问属性(protected、private)调用 isset() 或 empty() 时,__isset() 会被调用 public bool __isset ( string $name ) <?phpclass demo{ protected $protected = 1; public $public = 2; private $private = 3; function __isset($name){ echo "0{$name}0<br>"; } } unset() 当对不可访问属性(protected、private)调用unset()时,__unset()会被调用 public void __unset ( string $name ) (编辑:PHP编程网 - 黄冈站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |