1. 程式人生 > >PHP之型別約束

PHP之型別約束

在強型別語言中,型別約束是語法上的要求,即定義一個變數的時候,必須指定型別,並以後也只能儲存該型別資料;

php是弱型別,其特點是無需為變數指定型別,而且在其後也可以儲存任何型別,不過在php的新語法中,在某些特定場合,針對某些特定型別,也可進行語法約束。

  • 特定場合:函式(方法)的形參變數
  • 特定型別:物件型別(類名)、介面型別(介面名)、陣列型別(array)、函式型別(callable)

即可以對函式(方法)的引數設定必須使用的型別。只能對物件、介面、陣列和函式進行約束。

function f(類名 $p){}  
// 要求引數只能使用該類的物件
function
f(介面名 $p){
} // 要求該引數只能使用實現該介面的物件 function f(arrary $p){} // 要求該引數只能使用陣列 function f(callable $p) // 要求該引數只能是一個函式(方法),此時稱之為回撥函式(方法)
<?php
class A{}
function f(A $p){}
$obj = new A();
f($obj);