魔术方法
集合涵义
在PHP中以两个下划线开头的方法,__construct(), __destruct (), __call(), __callStatic(),__get(), __set(), __isset(), __unset (), __sleep(), __wakeup(), __toString(), __set_state,() __clone() __autoload()等,被称为"魔术方法"(Magic methods)。如果希望PHP调用这些魔术方法,首先必须在类中定义,否则PHP不会执行未创建的魔术方法。
包含成员
__set()
简介:
实例1:
<?phpclassSportObject{private$type='';publicfunction__get($name){if(isset($this->$name)){echo'变数'.$name.'的值为:'.$this->$name.'<br>';}else{echo'变数'.$name.'未定义,初始化为0<br>';$this->$name=0;}}publicfunction__set($name,$value){if(isset($this->$name)){$this->$name=$value;echo'变数'.$name.'赋值为:'.$value.'<br>';}else{$this->$name=$value;echo'变数'.$name.'被初始化为:'.$value.'<br>';}}}$MyComputer=newSportObject();$MyComputer->type='DIY';$MyComputer->type;?>
例1输出结果为:
变数type赋值为:DIY变数type的值为:DIY
__get()
简介:
实例2:
<?phpclassSportObject{private$type='';publicfunction__get($name){if(isset($this->$name)){echo'变数'.$name.'的值为:'.$this->$name.'<br>';}else{echo'变数'.$name.'未定义,初始化为0<br>';$this->$name=0;}}publicfunction__set($name,$value){if(isset($this->$name)){$this->$name=$value;echo'变数'.$name.'赋值为:'.$value.'<br>';}else{$this->$name=$value;echo'变数'.$name.'被初始化为:'.$value.'<br>';}}}$MyComputer=newSportObject();$MyComputer->name;?>
例2输出结果为:
变数name未定义,初始化为0
变数name被初始化为:0
__construct(),__destruct()
简介:
实例3:
<?php/***清晰的认识__construct()__destruct*/classExample{publicstatic$link;//在类实例化的时候自动载入__construct这个方法publicfunction__construct($localhost,$username,$password,$db){self::$link=mysql_connect($localhost,$username,$password);if(mysql_errno()){die('错误:'.mysql_error());}mysql_set_charset('uTF.htm target=_blank class=infotextkey>TF8');mysql_select_db($db);}/***通过__construct连结好资料库然后执行sql语句......*///当类需要被删除或者销毁这个类的时候自动载入__destruct这个方法publicfunction__destruct(){echo'<pre>';var_dump(self::$link);mysql_close(self::$link);var_dump(self::$link);}}$mysql=newExample('localhost','root','root','test');
例3输出结果为:
resource(2) of type (mysql link)
resource(2) of type (Unknown)
本文由'奉天向兰'发布,不代表演示站立场,转载/删除联系作者,如需删除请-> 关于侵权处理说明。