在我自己的搜索资料中,发现PHP7,已经变成了--半强类型语言
简单来说我们可以声明变量的类型。我们用个小例子来说明。
在我们日常使用中常常1.调用函数2.传入参数3.判断参数的类型
如:
[PHP] 纯文本查看 复制代码 function echoArray($arr){
if (is_array($arr)) {
foreach ($arr as $key => $value) {
echo $value.'<br/>';
}
}else{
echo '数据必须为数组!';
}
}
echoArray('你好');
echoArray(['你好']);
但是在PHP7支持声明数据类型:
[PHP] 纯文本查看 复制代码 function echoArray(Array $arr){
foreach ($arr as $key => $value) {
echo $value.'<br/>';
}
}
echoArray('你好');
echoArray(['你好']);
上面的参数里 $arr 前的Array就是声明$arr必须为数组类型,不然就会报错
Uncaught TypeError: Argument 1 passed to echoArray() must be of the type array, string given, called in D:\webserver\test\index.php on line 9 and defined in D:\webserver\test\index.php:2 Stack trace: #0 D:\webserver\test\index.php(9): echoArray('\xE4\xBD\xA0\xE5\xA5\xBD') #1 {main} thrown in D:\webserver\test\index.php on line 2
除了Array还有Object有一个更有用的声明方式,声明是否由某个类实例化得到,相当于InstanceOf
[PHP] 纯文本查看 复制代码 function echoObj(Son $obj){
var_dump($obj);
}
class father{}
class Son{}
$father=new father;
$son=new Son;
echoObj($father);
echoObj($son);
Uncaught TypeError: Argument 1 passed to echoObj() must be an instance of Son, instance of father given, called
如果不是传入Son对象就会报错,这样就省略了自己判断
|