从php5以后的版本,类就可以使用魔术方法了。php规定以两个下划线(__)开头的方法都保留为魔术方法,所以建议大家函数名最好不用__开 头,除非是为了重载已有的魔术方法。
目前php已有的魔术方法有 __construct,__destruct,__call,__get,__set,__isset,__unset,__sleep,__wakeup,__toString,__set_state 和 __clone。
本节将讲讲__construct,__destruct:
__construct() - 在每次创建新对象时先调用此方法
__destruct() - 对象的所有引用都被删除或者当对象
本文来源gao!%daima.com搞$代*!码$网3
搞代gaodaima码被显式销毁时执行
<?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="prettyprint linenums">'; 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教程有兴趣的朋友有所帮助。