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生成SessionID和图片校验码的思路和实现代码
Mar 10 PHP
PHP开发中常用的三个表单验证函数使用小结
Mar 03 PHP
有关PHP中MVC的开发经验分享
May 17 PHP
PHPEXCEL 使用小记
Jan 06 PHP
PHP Directory 函数的详解
Mar 07 PHP
如何使用Strace调试工具
Jun 03 PHP
深入PHP数据加密详解
Jun 18 PHP
php+js实现图片的上传、裁剪、预览、提交示例
Aug 27 PHP
smarty实现多级分类的方法
Dec 05 PHP
PHP自动补全表单的两种方法
Mar 06 PHP
PHP实现广度优先搜索算法(BFS,Broad First Search)详解
Sep 16 PHP
php传值和传引用的区别点总结
Nov 19 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 和 MySQL 基础教程(二)
2006/10/09 PHP
php数组应用之比较两个时间的相减排序
2008/08/18 PHP
php面向对象全攻略 (二) 实例化对象 使用对象成员
2009/09/30 PHP
php单例模式的简单实现方法
2016/06/10 PHP
PHP页面跳转操作实例分析(header方法)
2016/09/28 PHP
PHP水印类,支持添加图片、文字、填充颜色区域的实现
2017/02/04 PHP
PHP实现动态创建XML文档的方法
2018/03/30 PHP
phpstudy2020搭建站点的实现示例
2020/10/30 PHP
jquery与prototype框架的详细对比
2013/11/21 Javascript
页面定时刷新(1秒刷新一次)
2013/11/22 Javascript
键盘KeyCode值列表汇总
2013/11/26 Javascript
javascript中parseInt()函数的定义和用法分析
2014/12/20 Javascript
js剪切板应用clipboardData实例解析
2016/05/29 Javascript
jQuery Chart图表制作组件Highcharts用法详解
2016/06/01 Javascript
vue.js利用Object.defineProperty实现双向绑定
2017/03/09 Javascript
jQueryMobile之窗体长内容的缺陷与解决方法实例分析
2017/09/20 jQuery
Vue+Jwt+SpringBoot+Ldap完成登录认证的示例代码
2018/05/21 Javascript
springMvc 前端用json的方式向后台传递对象数组方法
2018/08/07 Javascript
JavaScript 双向链表操作实例分析【创建、增加、查找、删除等】
2020/04/28 Javascript
JS数据类型判断的几种常用方法
2020/07/07 Javascript
vue mvvm数据响应实现
2020/11/11 Javascript
[02:33]2018DOTA2亚洲邀请赛赛前采访——LGD
2018/04/04 DOTA
深入理解Javascript中的this关键字
2015/03/27 Python
Python下Fabric的简单部署方法
2015/07/14 Python
Python中functools模块函数解析
2017/03/12 Python
python中嵌套函数的实操步骤
2019/02/27 Python
Python封装成可带参数的EXE安装包实例
2019/08/24 Python
在python3中实现查找数组中最接近与某值的元素操作
2020/02/29 Python
Python实现疫情地图可视化
2021/02/05 Python
美国休闲服装品牌:Express
2016/09/24 全球购物
缓刑人员的思想汇报
2014/01/11 职场文书
先进德育工作者事迹材料
2014/01/24 职场文书
手机银行营销方案
2014/03/14 职场文书
学校政风行风整改方案
2014/10/25 职场文书
活动总结模板大全
2015/05/11 职场文书
JavaScript 事件捕获冒泡与捕获详情
2021/11/11 Javascript