日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

魔术方法php,PHP中常用的魔术方法

發布時間:2025/3/21 php 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 魔术方法php,PHP中常用的魔术方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我們在PHP中經常用到魔術方法,像構造方法,析構方法等等魔術變量,下面總結一下一些常用的魔術變量:

__construct(),__destruct(),__clone(),__autoload(),__tostring(),__invoke(),__set(),__get(),__unset(),__isset(),__call(),__callstatic;

1,__constuct()構造函數

通常實例化完一個對象之后,都要對該對象的屬性進行初始化!在實例化一個對象的時候,PHP系統會自動的調用一個名字叫作__construct()的方法,我們把這個方法叫作“構造方法”!

其中,構造方法可以沒有參數!

class Stu {

public $stu_name;

public $stu_age;

//構造方法,實例化時自動調用

public function __construct($name,$age){

$this->stu_name = $name;

$this->stu_age = $age;

}

}

//實例化stu對象

$stu = new Stu('孫悟空','500');

2.__destruct()析構方法

與構造方法是一對,構造方法是在一個對象“出生”的時候由系統自動調用的,而析構方法是在一個對象“消失”的時候由系統自動調用的!

析構方法的名字叫__destruct();注意里面不能有任何的參數!

//析構方法

public function __destruct(){

}

?>

注意:析構方法是在對象銷毀之前調用的!

作用:

析構方法的作用一般是用來釋放該對象所占用的額外的資源,而不是銷毀該對象本身!

3,__clone()克隆

觸發時機:是在克隆一個對象的時候,對新對象進行初始化的工作

//克隆方法在克隆對象的時候對新對象的初始化工作

public function __clone(){

$this->is_clone=true;

}

思考:

克隆出來的對象還是不是Student類中的一個實例呢?

我們可以利用instanceof運算符來進行判斷!

instanceof就是用來判斷某個對象是否是某個類的一個實例!

需要兩個操作數,前面是一個對象變量,后面是一個類名!返回一個布爾值!

var_dump($stu instanceof Stu);??   //返回bool(true)

4.__autoload()自動加載類

當調用不存在的類的時候自動調用!

/**

* 自動加載類

* 需要什么類__autoload會自動調用需要的文件

*

*/

public function __autoload($class_name)

{

require_once "../Model/{$class_name}.class.php";

}

?>

5.__tostring()

當將對象當成字符串使用的時候自動調用

6.__invoke()

當將對象當成函數使用的時候自動調用

7,__set()

當對無法訪問的屬性賦值時自動調用(比如:類外調用私有屬性)

8.__get()

當對獲取無法訪問的屬性值的時候自動調用

9.__unset()

當銷毀無法訪問的屬性的時候自動調用

10.__isset()

當判斷無法訪問的屬性是否存在的時候自動調用

11.__call()

當調用無法訪問的普通方法時自動觸發

class Stu{

public function __call(){

echo "error";

}

}

$stu = new Stu();

//此時Stu類里沒有show()方法,會觸發__call()函數

$stu->show();

12.__callststic()

當無法通過靜態方法訪問時自動觸發

class Stu{

public static function __callstatic(){

echo "error";

}

}

$stu = new Stu();

//此時Stu類里沒有show()方法,會觸發__call()函數

$stu::show();

以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持腳本之家!

總結

以上是生活随笔為你收集整理的魔术方法php,PHP中常用的魔术方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。