PHP类型约束

允我心安 提交于 2020-03-17 11:52:44

PHP类型约束

一、导语

       类型约束,即定义一个变量的时候,必须指定其类型,并且以后该变量也只能存储该类型数据。

       PHP作为弱类型语言,其特点是无需为变量指定类型,而且在其后也可以存储任何类型,但是在PHP的新语法中,在某些特定场合,针对某些特定类型,也可进行语法约束。PHP 5开始,在面向对象中,为方法带来了类型约束,PHP 7完善了对类型限制的支持,补上了之前的短缺,包括标量类型、返回值类型。

       PHP中接近完善的类型约束,降低了代码中一些因为类型约束而导致的问题。

二、演变过程

       1.  早期的约束

       虽然 PHP 是隐式转换,但是在实际开发中也会存在一些无法转换的窘境,当然这些问题我们在开发阶段很容易发现,但是如果是一些动态的内容导致不可控就会呈现在用户面前,也就是 BUG ,在 PHP 中有一批以 is_* 开头的方法用来做一些简单类型判断。

      2.  PHP 5+

       只支持对象、接口、数组、函数类型约束

      3.   PHP 7+

       增加了标量类型、返回值类型、可为空(Nullable)类型 (PHP 7.1)、Void函数,在 PHP 7.1 中还加入了严格类型验证

三、使用

function f(类名 $p){}             // 要求参数只能使用该类的对象

function f(接口名 $p){}         // 要求该参数只能使用实现该接口的对象

function f(arrary $p){}         // 要求该参数只能使用数组

function f(callable $p)         // 要求该参数只能是一个函数(方法),此时称之为回调函数(方法)

在项目中的运用如下图:

  

说明:此处要求构造方法中的参数必须是EmailSenderBy163(邮件发送类)的对象

 

参考链接:https://segmentfault.com/a/1190000018807667

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!