型別約束和類的魔術常量

2022-08-17 08:57:22 字數 1174 閱讀 9635

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...