位置: 编程技术 - 正文

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)

  • 工业增加值怎么找
  • 政府补贴款需要缴纳增值税
  • 增值税进项发票网上勾选平台
  • 公章损坏更换的费用怎么记账
  • 租车属于经营租赁吗
  • 工程机械租赁税点
  • 社保计入主营业务成本
  • 存款利息收入需要缴纳所得税吗
  • 补交的增值税可以从留抵里面扣嘛
  • 小规模纳税人减征额怎么计算
  • 永续盘存制的含义
  • 银行按揭方式销售开发产品
  • 往年预付账款错了,应如何调?
  • 农业企业土地租赁费账务处理
  • 公司向员工个人借款
  • 劳务费增值税发票是劳务单位开吗
  • 不征收增值税项目进项税额可以抵扣吗
  • 行政事业单位会计基础工作规范
  • 收派服务发票需交税吗
  • 销售坚果税率多少
  • 社会团体收取的会费是否缴纳增值税
  • 去年亏损今年第一季度盈利
  • 汽车租凭发票税率
  • 生产企业的免抵退纳税申报,在财务做销售收入账务后
  • 银行贷款入公账怎么入分录?
  • 关闭客户端快捷键
  • 合并报表六大抵消分录通俗理解
  • 事业单位租赁收入的处理
  • 工资薪金怎么申报9
  • 高新企业认定条件2019
  • G40/50-70、SR1000随机Linux改安装Win7系统的实现方法
  • Win10电脑重装系统要多少钱
  • linux系统已经得到了广泛的应用
  • 根据完工产品编制记账凭证
  • php实现创建微信群聊
  • php session_id
  • 高通芯片开发
  • 3分钟认识Vue3的v-model
  • pytorch创建模型
  • 织梦怎么调用当前栏目下的文章
  • 审图费谁出
  • 固定资产改造更新
  • linux中搭建web服务器
  • 公司账户的资金有利息吗
  • 连带责任担保会被拘留吗
  • 研发费用如何做加计扣除
  • dict.setdefault()在python中设置默认值
  • vue2跟vue3
  • mysql怎么截取字段
  • 申报高新企业的好处
  • 税率的确定和什么因素有关
  • 付了工资的资产负债表怎么填
  • 对公账户的钱都可以取吗
  • mysql数据库压力测试工具
  • 管理人员工资属于酌量性固定成本
  • 公司购买床垫如何做账
  • 老板怎么从公户拿钱
  • 公司收到现金货款怎么存银行
  • 购建固定资产属于投资活动吗
  • 固定资产清理是资产类的备抵科目吗
  • 行政事业单位负责人应当对本单位内部控制
  • 建账前应该考虑哪些问题
  • 动态创建表
  • 32位的win7和64位的win7要选择哪个呢?它们有什么区别?
  • 高危禁止安装怎么解除
  • office2016formac更新了什么 新版macoffice软件功能一览
  • centos如何设置网卡
  • 怎么创建windows虚拟机
  • js+html
  • msg命令用法
  • Android startActivities()的使用
  • unity3d怎么做动画
  • 安卓中的多线程
  • 绿化养护的增值税是多少
  • 广西地方税务网站官网
  • 应交税费二级科目有哪些
  • 税务局解决户口吗
  • 内蒙古国地税联合办税服务厅
  • 单位固定资产转到个人名下要交税吗
  • 土地交的契税会计科目
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设