導航:首頁 > 知識科普 > php的魔術方法包含哪些

php的魔術方法包含哪些

發布時間:2022-09-24 14:48:55

❶ PHP常用的幾個魔術方法

Check if this entry is a directory or a file.
const size_t filenameLength = strlen(fileName);
if (fileName[filenameLength-1] == '/')
{
{

❷ php魔術方法。。

在 PHP 里,將所有以 __(兩個下劃線)開頭的類方法保留為魔術方法,所以在定義類方法時,除了上述魔術方法,建議不要以 __ 為前綴。

魔術方法的引入是對面向對象編程思想的進一步實現,重載就是通過魔術方法來實現的。

PHP 魔術方法主要有:
__construct(), __destruct(), __call(), __callStatic(), __get(), __set(), __isset(), __unset(),__sleep(), __wakeup(), __toString(), __invoke(), __set_state(), __clone() 和 __debugInfo() 等。

最常見的是__construct(), __destruct(),__get(), __set()等:

__construct和__destruct是類的構造函數和析構函數。

❸ php什麼是魔術方法

__construct(),
__destruct(),
__call(),
__callStatic(),
__get(),
__set(),
__isset(),
__unset(),
__sleep(),
__wakeup(),
__toString(),
__invoke(),
__set_state(),
__clone()

__debugInfo()
等方法在
PHP
中被稱為"魔術方法"(Magic
methods)。在命名自己的類方法時不能使用這些方法名,除非是想使用其魔術功能。

❹ php5中魔術方法函數有哪幾個,請舉例說明各自的用法

__construct() :實例化對象時被調用;
__destuct():當刪除一個對象或者對象操作終止是被執行;
__call():調用對象不存在方法時被調用;
__get():調用對象不存在的屬性時被調用;
__set():設置對象不存在的屬性時被調用;_
_toString():列印一個對象時被調用,比如echo $obj,print($obj);
__clone():克隆對象時被調用,比如$t = new Test();$tt = clone $t;
__sleep():serialize之前被調用,若對象比較大,想做一些刪除在序列化,可以考慮使用該方法;
__wakeup():unserialize之前被調用,做些對象的初始化;
__isset():檢測對象是否存在屬性的時候被調用,如 isset($c->name);
__unset():unset一個對象屬性時被調用,如:unset($c->name);
__set_state():調用var_export時被調用,用__set_state的返回值作為 var_export的返回值;,
__autoload():實例化一個對象時,如果對應的類不存在,在該方法被調用。
希望你能採納,謝謝。

❺ php5 中魔術方法函數有哪幾個

魔術函數:
9.3 構造函數:__construct()
9.3.1 實例化對象時被調用。
9.3.2 在類中,構造函數是用來初始化對象的,利用構造函數,可以操作對象,並改變它的值。
9.3.3 當__construct和以類名為函數名的函數同時存在時,__construct將被調用,另一個不被調用。
9.3.4 當子類重寫了構造函數,子類被實例化時,只調用子類的構造函數,而父類的構造函數不被調用。
9.4 析構函數:__destruct()
9.4.1 當刪除一個對象或對象操作終止時被調用。
9.4.2 當該對象的所有引用都被刪除,或者對象被顯式銷毀時執行。
9.5 克隆函數:__clone()
9.5.1 當對象被拷貝(克隆)時直接調用。
9.5.2 如$a = new Action(); $a = $object;
9.6 __set($name, $value)
9.6.1 用$object->a = 17的方式給屬性賦值時,如果屬性a存在且是public型,那麼直接給屬性a賦值皆可;
9.6.2 如果屬性a不存在或者是protected/private型,就會調用__set($name, $value)方法。
9.6.3 二個參數:屬性、屬性值。
9.7 __get($name)
9.7.1 用$object->a的方式讀取對象的屬性時,如果屬性a存在且是public型,那麼直接返回該屬性的值;
9.7.2 如果屬性a不存在或者是protected/private修飾的不可直接訪問的類型,就會調該方法並以返回值為准。
9.7.3 一般可以使用該方法使外部可限制性地訪問內部屬性,或者完成類似java中的反射操作。
9.8 __isset($name)
9.8.1 檢測一個對象的屬性是否存在時被調用。
9.8.2 如:isset($c->name),如果name不存在,則觸發該函數。
9.8.3 對不存在或者不可訪問的屬性使用isset()或者empty()時,__isset()會被調用。
9.9 __unset($name)
9.9.1 銷毀一個對象的屬性時被調用。
9.9.2 如:unset($c->name),如果name不存在,則觸發該函數。
9.9.3 當unset一個不存在或者不可訪問的屬性時,__unset()會被調用,否則直接unset該屬性皆可。
9.10 __call($name, $arguments)
9.10.1 當調用不存在或者不可訪問的方法時,會調用__call($name, $arguments)方法。
9.11 __callStatic($name, $arguments)
9.11.1 當在靜態方法中調用不存在或者不可訪問的方法時,會調用__callStatic($name, $arguments)方法。
9.11.2 這個方法 是PHP5.3里才添加的,比較新。
9.12 __toString()
9.12.1 當列印對象時會被直接調用。如 echo $object; 或 print $obj;
9.12.2 注意:這時候php會拋出一個Catchable fatal error錯誤;用print_r列印對象不會觸發此函數。
9.13 __set_state()
9.13.1 用var_export()輸出一個對象時,__set_state()會被調用,輸出內容以該魔術方法的返回值為准。
9.13.2 註:var_export()和var_mp()類似,只是var_export()輸出的內容符合php語法。
9.14 __autoload($name)
9.14.1 實例化一個對象時,如果對應的類不存在,則該方法被調用。
9.14.2 這個函數比較特殊,這個函數並不是作為類的成員方法使用的。
9.14.3 注意:該方法是全局函數,參數是類的名稱。
9.14.4 可以用spl_autoload_register函數來定義其他的函數來代替__autoload
9.15 __sleep()
9.15.1 serialize之前被調用。若對象比較大,想刪減一點東東再序列化,可考慮一下此函數。
9.16 __wakeup()
9.16.1 unserialize時被調用,做些對象的初始化工作。

❻ php常見的幾個魔術方法

__construct
__destruct
__clone
__get
__set
__isset
__unset
__call
__tostring

❼ php面向對象中魔術方法有哪些

__construct(),
__destruct(),
__call(),
__callStatic(),
__get(),
__set(),
__isset(),
__unset(),
__sleep(),
__wakeup(),
__toString(),
__invoke(),
__set_state(),
__clone() ,
__debugInfo()

以__開頭的方法名都是

❽ PHP面向對象有哪些魔術方法

__construct(), __destruct(), __call(), __callStatic(), __get(), __set(), __isset(), __unset(), __sleep(), __wakeup(), __toString(),__invoke(), __set_state(), __clone() 和 __debugInfo() 等方法在 PHP 中被稱為"魔術方法"(Magic methods)。

❾ php 中的魔術函數都有哪些

魔術函數1。__construct()
實例化對象時被調用,
當__construct和以類名為函數名的函數同時存在時,__construct將被調用,另一個不被調用。2。__destruct()
當刪除一個對象或對象操作終止時被調用。3。__call()
對象調用某個方法,
若方法存在,則直接調用;
若不存在,則會去調用__call函數。4。__get()
讀取一個對象的屬性時,
若屬性存在,則直接返回屬性值;
若不存在,則會調用__get函數。5。__set()
設置一個對象的屬性時,
若屬性存在,則直接賦值;
若不存在,則會調用__set函數。6。__toString()
列印一個對象的時被調用。如echo $obj;或print $obj;7。__clone()
克隆對象時被調用。如:$t=new Test();$t1=clone $t;8。__sleep()
serialize之前被調用。若對象比較大,想刪減一點東東再序列化,可考慮一下此函數。9。__wakeup()
unserialize時被調用,做些對象的初始化工作。10。__isset()
檢測一個對象的屬性是否存在時被調用。如:isset($c->name)。11。__unset()
unset一個對象的屬性時被調用。如:unset($c->name)。12。__set_state()
調用var_export時,被調用。用__set_state的返回值做為var_export的返回值。13。__autoload()
實例化一個對象時,如果對應的類不存在,則該方法被調用。魔術常量1。__LINE__
返迴文件中的當前行號。2。__FILE__
返迴文件的完整路徑和文件名。如果用在包含文件中,則返回包含文件名。自 PHP 4.0.2 起,__FILE__ 總是包含一個絕對路徑,而在此之前的版本有時會包含一個相對路徑。3。__FUNCTION__
返回函數名稱(PHP 4.3.0 新加)。自 PHP 5 起本常量返回該函數被定義時的名字(區分大小寫)。在 PHP 4 中該值總是小寫字母的。4。__CLASS__
返回類的名稱(PHP 4.3.0 新加)。自 PHP 5 起本常量返回該類被定義時的名字(區分大小寫)。在 PHP 4 中該值總是小寫字母的。5。__METHOD__
返回類的方法名(PHP 5.0.0 新加)。返回該方法被定義時的名字(區分大小寫)。
(1)初識魔術方法
Php5.0發布以來為我們提供了很多面向對象的特性,尤其是為我們提供了好多易用的魔術方法,這些魔術方法可以讓我們簡化我們的編碼,更好的設計我們的系統。今天我們就來認識下php5.0給我們提供的魔術方法。

閱讀全文

與php的魔術方法包含哪些相關的資料

熱點內容
豬肉價格下跌的解決方法 瀏覽:933
泉州學唱歌技巧和發聲方法 瀏覽:962
神經源性膀胱工傷治療方法 瀏覽:965
如何選擇設計特殊雜質檢查方法 瀏覽:15
電纜線接線方法視頻 瀏覽:776
湖南煙熏肉食用方法 瀏覽:311
釣具的連接方法 瀏覽:133
細胞增生的治療方法 瀏覽:833
下列處理方法不正確的是 瀏覽:167
舒適進入安裝方法 瀏覽:225
用什麼方法粘膠最快 瀏覽:607
無線加濕器的安裝步驟及使用方法 瀏覽:802
歐萊雅洗面乳使用方法 瀏覽:819
win8怎麼設置鎖屏圖片在哪裡設置方法 瀏覽:941
爛地面地坪施工方法簡單 瀏覽:697
穩壓電路計算方法視頻 瀏覽:849
不用安全繩攀岩還有什麼方法 瀏覽:701
作業反應的教學方法 瀏覽:454
247乘101的簡便方法 瀏覽:108
可存放時間的計算方法 瀏覽:969