首頁 >後端開發 >php教程 >PHP中常用的魔術方法詳解

PHP中常用的魔術方法詳解

墨辰丷
墨辰丷原創
2018-05-23 13:50:061320瀏覽

本篇主要介紹了PHP常用的魔術方法的相關資料。具有很好的參考價值。下面跟著小編一起來看下吧

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

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

1,__constuct()建構子

通常實例化完一個物件之後,都要對該物件的屬性進行初始化!在實例化一個物件的時候,PHP系統會自動的呼叫一個名字叫做__construct()的方法,我們把這個方法叫做「建構方法」!

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

<?php

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(&#39;孙悟空&#39;,&#39;500&#39;);

2.__destruct()析構方法

與建構方法是一對,建構方法是在一個物件「出生」的時候由系統自動呼叫的,而析構方法是在一個物件「消失」的時候由系統自動呼叫的!

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

<?php

//析构方法
public function __destruct(){

}
?>

注意:析構方法是在物件銷毀之前呼叫的!  

作用:

#析構方法的作用一般是用來釋放該物件所佔用的額外的資源,而不是銷毀該物件本身!

3,__clone()複製

觸發時機:是在複製一個物件的時候,對新物件進行初始化的工作

//克隆方法在克隆对象的时候对新对象的初始化工作
 
public function __clone(){
 
 $this->is_clone=true;
} 

思考:

#複製出來的物件還是不是Student類別中的一個實例呢?

我們可以利用instanceof運算子來判斷!

instanceof就是用來判斷某個物件是否是某個類別的一個實例!

需要兩個操作數,前面是一個物件變量,後面是一個類別名稱!傳回一個布林值!

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

4.__autoload()自動載入類別

當呼叫不存在的類別的時候自動呼叫!

<?php 

/**
* 自动加载类
* 需要什么类__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()

當調用無法存取的普通方法時自動觸發

<?php 
class Stu{

 public function __call(){
    echo "error";
 }
}
$stu = new Stu();
//此时Stu类里没有show()方法,会触发__call()函数
$stu->show();

#12.__callststic()

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

<?php 
class Stu{

 public static function __callstatic(){
  echo "error";
 }
}
$stu = new Stu();
//此时Stu类里没有show()方法,会触发__call()函数
$stu::show();

#以上就是本文的全部內容,希望對大家的學習有幫助。


相關推薦:

PHP PDO操作總結_javascript技巧

#PHP

PDO操作總結_javascript技巧

PHP

使用方法重載實作動態建立屬性的get和set方法_javascript技巧
##PHP

中使用微秒計算腳本執行時間範例_javascript技巧

##########

以上是PHP中常用的魔術方法詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn