从php5以后的版本,类就可以使用魔术方法了。php规定以两个下划线(__)开头的方法都保留为魔术方法,所以建议大家函数名最好不用__开 头,除非是为了重载已有的魔术方法。
目前php已有的魔术方法有 __construct,__destruct,__call,__get,__set,__isset,__unset,__sleep,__wakeup,__toString,__set_state 和 __clone。
本节将讲讲__construct,__destruct:
__construct() - 在每次创建新对象时先调用此方法
__destruct() - 对象的所有引用都被删除或者当对象被显式销毁时执行
<?php /** * 清晰的认识__construct() __destruct */ class Example { public static $link; //在类实例化的时候自动加载__construct这个方法 public function __construct($localhost, $username, $password, $db) { self::$link = mysql_connect($localhost, $username, $password); if (mysql_errno()) { die('错误:' . mysql_error()); } mysql_set_charset('utf8'); mysql_select_db($db); } /** * 通过__construct链接好数据库然后执行sql语句...... */ //当类需要被删除或者销毁这个类的时候自动加载__destruct这个方法 public function __destruct() { echo '<pre class="brush:php;toolbar:false">'; var_dump(self::$link); mysql_close(self::$link); var_dump(self::$link); } } $mysql = new Example('localhost', 'root', 'root', 'test');
结果:
resource(2) of type (mysql link) resource(2) of type (Unknown)
以上就介绍了PHP 魔术方法:__construct __destruct,包括了PHP 魔术方法方面的内容,希望对PHP教程有兴趣的朋友有所帮助。