從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教學有興趣的朋友有幫助。