您好,登錄后才能下訂單哦!
<?php
//header(charset="utf8");
//echo 'hey 這里是描述我對php 面向對象中各種魔術方法的認識。';
/*
*魔術方法是在一些特定情況下會自動調用的一些php系統自定義函數
*這些函數都很有個性,他們統一以__兩個 _ (下劃線)開頭。
* 下面對于php 中這些常用的魔術方法一些個人認識。
**/
class demo {
public $name;
public $age;
//當實例化這個類,首先會自動調用的方法 __construct (構造函數)
//注意,在一些特定場合將構造函數寫成了私有方法時,需要用靜態方法實例化這個類
function __construct($name,$age){
echo '實例化本類最先執行的函數<br>';
$this->name = $name; //這樣以來相當于初始化了這個實例。
$this->age = $age;
}
//當對象被克隆時觸發的函數 __clone()
function __clone(){
echo '發現克隆體<br>';
}
//當我們訪問一個不存在的或者無權限訪問的屬性時。觸發函數 __get
//當訪問private,protected等屬性都會觸發該函數
function __get($value){
echo '你正要訪問的'.$value.'屬性無法訪問<br>';
}
//設置屬性與屬性值,對已經存在的屬性設置不會觸發函數 __set
function __set($key,$value){
echo "你所要設置的屬性名為$key,屬性值為$value<br>";
}
//當在一個未定義(包括 protected/private)的屬性上調用 isset() 時,調用__isset()
function __isset($value){
echo '你所訪問的屬性不存在<br>';
}
//在刪除一個不可訪問的屬性時間觸發 __unset()
function __unset($value){
echo "你這要刪除一個名為".$value."的屬性<br>";
}
//析構函數指的是當某個對象的所有引用被刪除,或者對象被顯式的銷毀時會執行的函數。 __destruct(析構函數)
//可以說這個方法是在程序的最后面執行的
function __destruct(){
echo '程序跑到尾聲才觸發的一個函數';
}
}
$demo = new demo('zhang','1');
//unset($demo->ss);//你這要刪除一個名為ss的屬性
//isset($demo->sss);//你所訪問的屬性不存在
//你所要設置的屬性名為gender,屬性值為nan
//$demo->gender = 'nan'; //不存在的屬性出發__set 方法
//$demo->name = 'jian'; //已存在的屬性直接設置。
//echo $demo->name;
//$demo->ss;//你正要訪問的ss屬性無法訪問
//$demo1 = clone($demo); //此時處罰了clone() 方法
?>
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。