位置: 编程技术 - 正文

PHP7.1新功能之Nullable Type用法分析(php 7.4)

编辑:rootadmin

推荐整理分享PHP7.1新功能之Nullable Type用法分析(php 7.4),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:php nio,php 7.4,php 7.4,php7.0,php7.0,php 7,php 7.4,php7.3,内容如对您有帮助,希望把文章链接给更多的朋友!

本文实例分析了PHP7.1新功能之Nullable Type用法。分享给大家供大家参考,具体如下:

在 PHP5 时代,PHP 的参数已经支持 type hint(除了基本类型),想必大家应该很熟悉;后来 PHP7 时代来临,PHP 也可以指定返回值的类型(以及基本类型的 type hint)。但我们可能还有一种需求:除了指定的 type hint,参数或者返回值也能定义可以为 null,举个例子,假如我们有一个 UserRepository 类,有一个方法叫 find($id),此方法可返回一个 User 对象,也可返回 null,在 PHP7.1 里就可以这么定义了:...

但这么申明以后,如果返回 null,是否必须显式调用 return null,这就得等 7.1 正式出来之后再验证了。

当然还有参数设定是否 nullable 的例子,直接复制官网里的例子:

以上便是 nullable type 的大致用法,但其实引入了此种机制以后,有很多细节都是需要注意的,比如在继承的时候,子类允许去掉父类同名方法的返回类型为 nullable 的设置:

但反过来,子类是不允许添加返回类型可以为 nullable 的。

然后我们再来看看参数类型的情况。跟返回类型相反,子类在复写父类方法时,参数类型是可以在父类参数的基础上添加 nullable 属性的:

PHP7.1新功能之Nullable Type用法分析(php 7.4)

反过来不行。可能刚看到这点,大家都会有疑问为什么返回类型和参数类型会有这样的设定。其实大家想想 Liskov 替换原则就明白了。最后是关于参数默认值的问题,目前 PHP 是可以这样做的:

但如果改成 nullable 的类型申明,即使传入的参数是 null,也不能在调用的时候省略不写:

由此可见 nullable 类型的目的是为了允许某个参数带类型而且可以为 null,而默认值为 null 的参数就真的是想告诉大家某个参数的默认值是 null。以前我们如果允许某些 setter 可以置空,写的代码总是觉得怪怪的:

觉得怪最大的原因我想是因为这样的一个 setter 居然可以不传参数!

这下好了,有了 nullable type,我们也就不会写那么别扭的代码了。

当然,nullable type 和 = null 是可以同时用的。这里就不写例子了,效果跟只用 = null 没有区别。

最后,还是继承:如果父类方法参数是 nullable 的,那么子类可以使用 = null

更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《php面向对象程序设计入门教程》、《PHP网络编程技巧总结》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。

PHP7.1方括号数组符号多值复制及指定键值赋值用法分析 本文实例讲述了PHP7.1方括号数组符号多值复制及指定键值赋值用法。分享给大家供大家参考,具体如下:PHPer们可能都知道list的用法,简单来说就是可

PHP7常量数组用法分析 本文实例讲述了PHP7常量数组用法。分享给大家供大家参考,具体如下:php7之前define只能是键值对,而php7里可以把数组加进definephp/***CreatedbyPhpStorm.*User:b

PHP7匿名类用法分析 本文实例讲述了PHP7匿名类用法。分享给大家供大家参考,具体如下:匿名类跟匿名函数一样,创建一次性的简单对象php/***CreatedbyPhpStorm.*User:bee*Date:/4

标签: php 7.4

本文链接地址:https://www.jiuchutong.com/biancheng/301864.html 转载请保留说明!

上一篇:php版交通银行网银支付接口开发入门教程(交通银行手机银行网页版)

下一篇:thinkphp配置文件路径的实现方法(thinkphp pathinfo)

  • 带息负债融资成本率意义
  • 什么是税目税基税率,简答题
  • 小规模收入超过多少必须转一般纳税人
  • 金融服务费可以谈吗
  • 发票号码代码不合法
  • 小微企业免税销售额和未达起征点销售额
  • 银行贷款受托支付后,钱怎么转回来
  • 特殊销售业务包括什么
  • 外购货物用于捐赠的会计分录
  • 设备折旧费用的作用
  • 企业生产设备产品有哪些
  • 施工企业仪器设备入什么会计科目核算?
  • 税收编码名称是什么
  • 生产人员社保怎么做账
  • 资产负债表待摊费用出现负数
  • 库存商品过期报损
  • 增值税发票遗失证明模板
  • 本年利润和未分配利润怎么结转
  • 海关进口增值税专用缴款书
  • 企业工会经费计提比例
  • vue2editor
  • u盘win10系统安装教程
  • win11 zen2
  • 企业销售旧固定资产税率
  • html里写php
  • 广告费业务宣传费可以结转吗
  • 异地工程款预缴
  • oc底层原理
  • php floatval
  • 现金折扣什么时候冲减收入
  • php.ini上传限制
  • 织梦官方网站
  • 长期资产包含哪些
  • 加油卡充值如何退款
  • 购进已经折旧提完的二手车
  • 应付账款尾差如何处理
  • 坏账核销会计处理
  • 合伙企业分配利润会计分录
  • MySQL中distinct语句去查询重复记录及相关的性能讨论
  • 存货的入账价值等于
  • 发行股票的好处和坏处
  • 对公账户 退款
  • 什么叫递延收益和其他收益
  • 政府补贴业务如何发放
  • 主营业务成本账户属于什么账户
  • 暂估入库估多了,汇算清缴前调整
  • 融资租赁收到的租金计入什么科目
  • 无形资产摊销方法应反映其经济利益的预期实现方式
  • 委托加工合同如何签订
  • 给投资人的利润属于什么科目
  • 城市生活垃圾处理方式有哪几种
  • 聘用残疾人优惠政策
  • 连锁药店之间调拨药品
  • 网站和店铺的区别
  • sqlserver 版本号
  • SqlServer 2000、2005分页存储过程整理第1/3页
  • mysql数据库的介绍
  • mysqldump备份数据库不完整
  • win10免费安装吗
  • 电脑svchost占用cpu很大
  • windows设置tomcat自动重启
  • win7系统360浏览器自启动怎么关闭
  • win8.1改语言
  • 剑网端游吃电脑配置
  • win80x0000007b修复
  • win10系统怎么关闭病毒防护
  • fsrremos.exe
  • 重装win7系统后没有无线网
  • Android游戏开发读后感
  • python简单加密
  • js设计模式书
  • 四种参数传递方式
  • jquery选择器包含哪几大类
  • jquery技巧
  • 解决跨域的原理
  • 安卓手机如何查
  • 棚改房办房产证用不用交费
  • 会计餐费费的会计分录
  • 如何查看税务登记信息
  • 每个省几个市
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设