class User{
public $name;
public $password;
function __construct($name,$password){
$this->name=$name;
$this->password=$password;
}
}
//类型约束不能用于标量类型和traits类型,可以是Object、Array、Interface、以及回调类型(callable),函数调用的参数与定义的参数类型不一致时,会抛出一个可捕获的致命错误。
//参数可以指定对象类型
function f1(User $user){
echo $user->name,”,”,$user->password;
}
//参数可以指定数组类型
function f2(array $arr){}
//参数不可以指定基本类型(四种标量类型:string、integer、float和boolean),下面一句会出错
function f3(string $s){}
附:
SPL提供了6个迭代器接口:
Traversable | 遍历接口(检测一个类是否可以使用 foreach 进行遍历的接口) |
Iterator | 迭代器接口(可在内部迭代自己的外部迭代器或类的接口) |
IteratorAggregate | 聚合式迭代器接口(创建外部迭代器的接口) |
OuterIterator | 迭代器嵌套接口(将一个或多个迭代器包裹在另一个迭代器中) |
RecursiveIterator | 递归迭代访问接口(提供递归访问功能) |
SeekableIterator | 可索引迭代访问接口(实现查找功能) |