PHP 魔術方法

2021-10-04 11:42:37 字數 2977 閱讀 2558

已經學習的魔術方法

__construct()

__destruct()

__clone()

1.6.1__tostring()、__invoke()

__tostring():將物件當成字串使用的時候自動呼叫

__invoke():將物件當成函式使用的時候自動呼叫

<?php

class

student

//把物件當成函式使用的時候自動執行

public

function

__invoke()

}$stu

=new

student

;echo

$stu

;//當成字串使用

$stu()

;//當成函式使用

1.6.2__set()、__get()、__isset()、__unset()
__set($k

,$v):給無法訪問的屬性賦值的時候自動執行

__get($k

):獲取無法訪問的屬性值的時候自動呼叫

__isset($k

):判斷無法訪問的屬性是否存在自動呼叫

__unset($k

):銷毀無法訪問的屬性的時候自動執行

例題

<?php

class

student

//獲取無法訪問的屬性值的時候自動呼叫

public

function

__get($k

)//判斷無法訪問的屬性是否存在自動呼叫

public

function

__isset($k

)//銷毀無法訪問的屬性的時候自動執行

public

function

__unset($k

)}//測試

$stu

=new

student

;//1、給私有屬性賦值

$stu

->

name

='tom'

;$stu

->

***=

'男';

$stu

->

age=22;

//2、獲取私有屬性的值

//echo $stu->name;

//3、判斷私有屬性是否存在

//var_dump(isset($stu->name));

//4、銷毀私有屬性

unset

($stu

->

age)

;print_r

($stu

);

應用:設定讀寫屬性

<?php

class

student

屬性是唯讀屬性";

}public

function

__get($k

)是只寫屬性";

}}//測試

$stu

=new

student

;$stu

->

name

='tom'

;$stu

->

age=22;

echo

'姓名:'

.$stu

->

name,'

';echo

.$stu

->

add,''

;

1.6.3__call()、__callstatic()
__call

():呼叫無法訪問的方法時自動執行

__callstatic

():呼叫無法訪問的靜態方法時自動執行

例題:

<?php

class

student

不存在";}

//呼叫無法訪問的靜態方法時自動執行

public

static

function

__callstatic

($fn_name

,$fn_args

)靜態方法不存在";

}}//測試

$stu

=new

student

;$stu

->

show(10

,20);

student:

:show()

;

1.6.4__sleep()、__wakeup()
__sleep

():當序列化的時候自動呼叫

__wakeup

():當反序列化的時候自動呼叫

例題

<?php

class

student

/** *序列化的時候自動呼叫

*@return array 序列化的屬性名

*/public

function

__sleep()

//反序列化的時候自動呼叫

public

function

__wakeup()

}//測試

$stu

=new

student

('tom'

,'男');

$str

=serialize

($stu);

//序列化

$stu

=unserialize

($str);

//反序列化

print_r

($stu

);

php魔術常量,魔術方法

魔術常量 1。line 返回檔案中的當前行號。2。file 返回檔案的完整路徑和檔名。如果用在包含檔案中,則返回包含檔名。自php4.0.2 起,file 總是包含乙個絕對路徑,而在此之前的版本有時會包含乙個相對路徑。3。function 返回函式名稱 php4.3.0 新加 自php5 起本常量返...

invoke 魔術 PHP 魔術方法

php 魔術方法 構造方法 construct 析構方法 destruct get 與 set unset call 和 callstatic sleep 和 wakeup clone tostring invoke set state debuginfo construct 這個方法應該是最常用的...

php魔術方法

php5魔術方法 魔術函式 1。construct 建構函式 例項化物件時被呼叫,當 construct和以類名為函式名的建構函式同時存在時,construct將被呼叫,另乙個不被呼叫。2。destruct 析構函式 當刪除乙個物件或物件操作終止時被呼叫 程式結束後物件就摧毀 永遠都是最後執行的。3...