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 多个submit提交表单 处理方法
Jul 07 PHP
建站常用13种PHP开源CMS比较
Aug 23 PHP
MySQL的FIND_IN_SET函数使用方法分享
Mar 27 PHP
ThinkPHP访问不存在的模块跳转到404页面的方法
Jun 19 PHP
基于php(Thinkphp)+jquery 实现ajax多选反选不选删除数据功能
Feb 24 PHP
PHP常用操作类之通信数据封装类的实现
Jul 16 PHP
PHP命令空间namespace及use的用法小结
Nov 27 PHP
ThinkPHP5框架实现简单的批量查询功能示例
Jun 07 PHP
PHP后期静态绑定之self::限制实例分析
Dec 21 PHP
php反序列化长度变化尾部字符串逃逸(0CTF-2016-piapiapia)
Feb 15 PHP
THINKPHP5.1 Config的配置与获取详解
Jun 08 PHP
PHP基本语法
Mar 31 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 JS Ip地址及域名格式检测代码
2013/09/27 PHP
PHP mail()函数使用及配置方法
2014/01/14 PHP
php获取本周开始日期和结束日期的方法
2015/03/09 PHP
Symfony2在Nginx下的配置方法图文教程
2016/02/04 PHP
PHP实现的线索二叉树及二叉树遍历方法详解
2016/04/25 PHP
php解决安全问题的方法实例
2019/09/19 PHP
为数据添加append,remove功能
2006/10/03 Javascript
[原创]IE view-source 无法查看看源码 JavaScript看网页源码
2009/07/19 Javascript
javascript 闭包
2011/09/15 Javascript
js中的异常处理try...catch使用介绍
2013/09/21 Javascript
JavaScript实现自动变换表格边框颜色
2015/05/08 Javascript
JavaScript 函数的执行过程
2016/05/09 Javascript
Node.js的项目构建工具Grunt的安装与配置教程
2016/05/12 Javascript
JS阻止事件冒泡行为和闭包的方法
2016/06/16 Javascript
JS实现的DIV块来回滚动效果示例
2017/02/07 Javascript
js 调用百度分享功能
2017/02/27 Javascript
windows实现npm和cnpm安装步骤
2019/10/24 Javascript
element-ui 远程搜索组件el-select在项目中组件化的实现代码
2019/12/04 Javascript
web.py中调用文件夹内模板的方法
2014/08/26 Python
python生成lmdb格式的文件实例
2018/11/08 Python
Python3中函数参数传递方式实例详解
2019/05/05 Python
python使用writerows写csv文件产生多余空行的处理方法
2019/08/01 Python
Python爬虫抓取论坛关键字过程解析
2020/10/19 Python
PyTorch 中的傅里叶卷积实现示例
2020/12/11 Python
Canvas多边形绘制的实现方法
2019/08/05 HTML / CSS
JBL加拿大官方商店:扬声器、耳机等
2020/10/23 全球购物
工伤事故赔偿协议书范文
2014/09/24 职场文书
领导班子在批评与自我批评座谈会上的发言
2014/09/28 职场文书
群众路线教育实践活动总结
2014/10/30 职场文书
毕业生见习报告总结
2014/11/08 职场文书
银行催款通知书
2015/04/17 职场文书
乡镇保密工作承诺书
2015/05/04 职场文书
2016年百日安全生产活动总结
2016/04/06 职场文书
研究生学习计划书应该怎么写?
2019/09/10 职场文书
React 并发功能体验(前端的并发模式)
2021/07/01 Javascript
Python利用zhdate模块实现农历日期处理
2022/03/31 Python