php 7新特性之类型申明详解


Posted in PHP onJune 06, 2017

前言

PHP7 将类型申明变成了可能,PHP 7 支持的形参类型申明的类型有以下几种

  • 整型
  • 浮点型
  • 字符串型
  • 布尔类型

函数形参与返回类型声明demo 如下

/**
 * @author 袁超 <yccphp@163.com>
 */
class Demo{

 /**
 * int $name 则是形参类型声明
 * : int 是返回类型声明
 */
 public function age(int $age) : int
 {
 return $age;
 }

}

上面我们定义了一个 Demo 类,里面就一个方法,在声明方法时,我们指定了 int $name 要求 函数接收的参数必须是 int 类型的,在参数列表括号后面,我们跟上了 : int ,则是声明了我们这个函数的返回数据类型

$demo = new Demo();

$demo->age(10.23); // 我们传递的是 float 型参数,也能通过检查

在上面例子中,我们传递的是一个 float 类型的参数,但是代码还是能够正常运行起来的

这是因为在 php7 中,默认情况下形参类型说明不是完全被限制的,这就意味着我们定义的东西只是一个建议,而不是完全约束

当然,我们可以完全限制,我们通过设置来实现

declare(strict_type=1);

这个时候,我们运行上面的代码,则会得到一个 Uncaught Type Error

这个改变挺有意义的,这样我们在做一些多人参与的项目的时候,就不会出现参数乱传以及不知道这个函数返回什么东西的问题

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

PHP 相关文章推荐
PHP教程 预定义变量
Oct 23 PHP
PHP5 面向对象(学习记录)
Dec 02 PHP
PHP IPV6正则表达式验证代码
Feb 16 PHP
PHP 数据结构 算法 三元组 Triplet
Jul 02 PHP
php遍历CSV类实例
Apr 14 PHP
php使用cookie实现记住登录状态
Apr 27 PHP
fsockopen pfsockopen函数被禁用,SMTP发送邮件不正常的解决方法
Sep 20 PHP
php常用字符函数实例小结
Dec 29 PHP
php实现websocket实时消息推送
Mar 30 PHP
laravel实现一个上传图片的接口,并建立软链接,访问图片的方法
Oct 12 PHP
基于PHP实现用户登录注册功能的详细教程
Aug 04 PHP
laravel数据库查询结果自动转数组修改实例
Feb 27 PHP
thinkPHP+phpexcel实现excel报表输出功能示例
Jun 06 #PHP
PHP实现RSA签名生成订单功能【支付宝示例】
Jun 06 #PHP
PHP实现的激活用户注册验证邮箱功能示例
Jun 06 #PHP
PHP实现向关联数组指定的Key之前插入元素的方法
Jun 06 #PHP
PHP培训要多少钱
Jun 06 #PHP
Mac系统完美安装PHP7详细教程
Jun 06 #PHP
PHP实现的注册,登录及查询用户资料功能API接口示例
Jun 06 #PHP
You might like
PHP中防止SQL注入实现代码
2011/02/19 PHP
ThinkPHP中order()使用方法详解
2016/04/19 PHP
php判断手机浏览还是web浏览,并执行相应的动作简单实例
2016/07/28 PHP
PHP判断json格式是否正确的实现代码
2017/09/20 PHP
Yii框架学习笔记之应用组件操作示例
2019/11/13 PHP
innertext , insertadjacentelement , insertadjacenthtml , insertadjacenttext 等区别
2007/06/29 Javascript
小议javascript 设计模式 推荐
2009/10/28 Javascript
JS异常处理的一个想法(sofish)
2013/03/14 Javascript
js实现两个值相加alert出来精确到指定位
2013/09/25 Javascript
浅谈js里面的InttoStr和StrtoInt
2016/06/14 Javascript
JavaScript实现简单图片轮播效果
2017/08/21 Javascript
vue params、query传参使用详解
2017/09/12 Javascript
结合mint-ui移动端下拉加载实践方法总结
2017/11/08 Javascript
vuejs+element UI点击编辑表格某一行时获取内容填入表单的示例
2018/10/31 Javascript
vue自定义键盘信息、监听数据变化的方法示例【基于vm.$watch】
2019/03/16 Javascript
JS中的算法与数据结构之队列(Queue)实例详解
2019/08/20 Javascript
使用Typescript和ES模块发布Node模块的方法
2020/05/25 Javascript
[46:14]VGJ.T vs Liquid 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
python多进程操作实例
2014/11/21 Python
python通过pip更新所有已安装的包实现方法
2017/05/19 Python
安装Python和pygame及相应的环境变量配置(图文教程)
2017/06/04 Python
Python数据操作方法封装类实例
2017/06/23 Python
django manage.py扩展自定义命令方法
2018/05/27 Python
python基于Selenium的web自动化框架
2019/07/14 Python
Python django框架输入汉字,数字,字符生成二维码实现详解
2019/09/24 Python
pyqt5 textEdit、lineEdit操作的示例代码
2020/08/12 Python
canvas实现图片镜像翻转的2种方式
2020/07/22 HTML / CSS
数据库的约束含义
2012/09/09 面试题
环境科学专业求职信
2014/08/04 职场文书
班级团队活动方案
2014/08/14 职场文书
学校师德师风整改措施
2014/10/27 职场文书
组织生活会发言材料
2014/12/15 职场文书
事业单位工作人员年度考核个人总结
2015/02/12 职场文书
素质拓展训练感想
2015/08/07 职场文书
演讲稿:​快乐,从不抱怨开始!
2019/04/02 职场文书
Python集合set()使用的方法详解
2022/03/18 Python