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 相关文章推荐
桌面中心(四)数据显示
Oct 09 PHP
在字符串中把网址改成超级链接
Oct 09 PHP
修改php.ini实现Mysql导入数据库文件最大限制的修改方法
Dec 11 PHP
用php过滤危险html代码的函数
Jul 22 PHP
php若干单维数组遍历方法的比较
Sep 20 PHP
PHP中的str_repeat函数在JavaScript中的实现
Sep 16 PHP
CodeIgniter框架中_remap()使用方法2例
Mar 10 PHP
PHP 7.1新特性的汇总介绍
Dec 16 PHP
PHP随机获取未被微信屏蔽的域名(微信域名检测)
Mar 19 PHP
PHP 传输会话curl函数的实例详解
Sep 12 PHP
PHP的介绍以及优势详细分析
Sep 05 PHP
laravel 框架执行流程与原理简单分析
Feb 01 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表单请求获得数据求和示例
2014/05/15 PHP
ThinkPHP CURD方法之data方法详解
2014/06/18 PHP
PHP预定义超全局数组变量小结
2018/08/20 PHP
Laravel-添加后台模板AdminLte的实现方法
2019/10/08 PHP
可以将word转成html的js代码
2010/04/11 Javascript
js 去掉空格实例 Trim() LTrim() RTrim()
2014/01/07 Javascript
javascript 3d 逐侦产品展示(核心精简)
2014/03/26 Javascript
JS的事件绑定深入认识
2014/06/26 Javascript
关于jQuery判断元素是否存在的问题示例探讨
2014/07/21 Javascript
详解AngularJS中的依赖注入机制
2015/06/17 Javascript
Node.js中的process.nextTick使用实例
2015/06/25 Javascript
详解js图片轮播效果实现原理
2015/12/17 Javascript
基于jQuery和hwSlider实现内容左右滑动切换效果附源码下载(一)
2016/06/22 Javascript
基于Vue2.0+ElementUI实现表格翻页功能
2017/10/23 Javascript
使用javascript做时间倒数读秒功能的实例
2019/01/23 Javascript
vue计算属性get和set用法示例
2019/02/08 Javascript
详解Element 指令clickoutside源码分析
2019/02/15 Javascript
vue+iview动态渲染表格详解
2019/03/19 Javascript
生产制造追溯系统之再说条码打印
2019/06/03 Javascript
IDEA配置jQuery, $符号不再显示黄色波浪线的问题
2020/10/09 jQuery
[08:47]2018国际邀请赛 OG战队举杯时刻
2018/08/29 DOTA
python使用新浪微博api上传图片到微博示例
2014/01/10 Python
ubuntu系统下 python链接mysql数据库的方法
2017/01/09 Python
深入分析python数据挖掘 Json结构分析
2018/04/21 Python
python获取Linux发行版名称
2019/08/30 Python
基于python图像处理API的使用示例
2020/04/03 Python
Python matplotlib可视化实例解析
2020/06/01 Python
美国婴儿用品店:Babies”R”Us
2017/10/12 全球购物
英国领先的运动物理治疗供应公司:Vivomed
2018/07/14 全球购物
教师群众路线教育实践活动个人对照检查材料
2014/11/04 职场文书
2016年119消防宣传日活动总结
2016/04/05 职场文书
Python WSGI 规范简介
2021/04/11 Python
HTML通过表单实现酒店筛选功能
2021/05/18 HTML / CSS
C站最全Python标准库总结,你想要的都在这里
2021/07/03 Python
利用JuiceFS使MySQL 备份验证性能提升 10 倍
2022/03/17 MySQL
python使用shell脚本创建kafka连接器
2022/04/29 Python