1、什麼是類約束?
其他很多語言中,型別約束是語法上的要求,即定義乙個變數的時候,必須指定型別,並以後也只能儲存該型別資料——這種是強型別語言的乙個特點。比如:
int n1 = 1; //int型別變數
float f1 ; //float型別變數
bool function getconcat( string s1, string s2) //兩個形參是
string
,返回值也是
bool
型 2、php是弱型別語言,其特點是無需為變數指定型別,而且在其後也可以儲存任何型別。
但:在php的較新的語法中,在某些特定場合,針對某些特定型別,也可以進行語法約束。
特定場合:函式(或方法)的形參變數
特定型別:物件型別(類名),
介面型別(介面名),
陣列型別(array), 函式型別(
callable
)可以對函式(或方法)的引數設定必須使用的型別。只能對物件,介面,陣列和函式進行約束,如下所示:
function f1(類名
$p1)
:要求該引數只能使用該類的物件;
function f1(介面名
$p1)
:要求該引數只能使用實現該介面的物件;
function f1(array $p1):要求該引數只能使用陣列;
function f1(callable $p1):要求該引數只能是乙個函式或方法,此時稱之為**函式(方法)
同樣的**,對f1加上型別約束
再來舉個陣列例子:
1、__class__,:獲取其所在的類的類名。
2、__method__:獲取其所在的方法的方法名。
PHP的魔術常量和魔術方法
魔術常量和魔術方法 php 將所有以 兩個下劃線 開頭的類方法保留為魔術方法 所以在定義類方法時,除了上述魔術方法,建議不要以 為字首。在命名自己的類方法時不能使用這些方法名,除非是想使用其魔術功能。1 魔術常量 line 檔案中的當前行號。file 檔案的完整路徑和檔名。如果用在被包含檔案中,則返...
php的魔術函式和魔術常量
1。construct 例項化物件時被呼叫,當 construct和以類名為函式名的函式同時存在時,construct將被呼叫,另乙個不被呼叫。2。destruct 當刪除乙個物件或物件操作終止時被呼叫。3。call 物件呼叫某個方法,若方法存在,則直接呼叫 若不存在,則會去呼叫 call函式。4。...
PHP魔術函式和魔術常量
魔術函式 1 construct 例項化物件時被呼叫。當 construct和以類名為函式名的函式同時存在時,construct將被呼叫,另乙個不被呼叫。2 destruct 當刪除乙個物件或物件操作終止時被呼叫。3 call 物件呼叫某個方法。若方法存在,則直接呼叫。若不存在,則會去呼叫 call...