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常用函数小技巧
Sep 11 PHP
php生成xml简单实例代码
Dec 16 PHP
php递归创建和删除文件夹的代码小结
Apr 13 PHP
php基础教程 php内置函数实例教程
Aug 21 PHP
PHP中绘制图像的一些函数总结
Nov 19 PHP
php实现生成验证码实例分享
Apr 10 PHP
PHP分页初探 一个最简单的PHP分页代码的简单实现
Jun 21 PHP
php array_values 返回数组的所有值详解及实例
Nov 12 PHP
PHP中模糊查询并关联三个select框
Jun 19 PHP
thinkPHP通用控制器实现方法示例
Nov 23 PHP
PHP实现用session来实现记录用户登陆信息
Oct 15 PHP
php进程(线程)通信基础之System V共享内存简单实例分析
Nov 09 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高级对象构建 多个构造函数的使用
2012/02/05 PHP
简单的方法让你的后台登录更加安全(php中加session验证)
2012/08/22 PHP
php根据身份证号码计算年龄的实例代码
2014/01/18 PHP
PHP模拟asp中response类实现方法
2015/08/08 PHP
THinkPHP获取客户端IP与IP地址查询的方法
2016/11/14 PHP
用dom+xhtml+css制作的一个相册效果代码打包下载
2008/01/24 Javascript
jQuery1.6 正式版发布并提供下载
2011/05/05 Javascript
js日历功能对象
2012/01/12 Javascript
script标签属性type与language使用选择
2012/12/02 Javascript
jQuery移动和复制dom节点实用DOM操作案例
2012/12/17 Javascript
JQuery操作tr和td内容的方法实例
2013/03/06 Javascript
jQuery实现的自定义弹出层效果实例详解
2016/09/04 Javascript
常用Javascript函数与原型功能收藏(必看篇)
2016/10/09 Javascript
工作中常用的js、jquery自定义扩展函数代码片段汇总
2016/12/22 Javascript
javascript数据结构中栈的应用之符号平衡问题
2017/04/11 Javascript
利用JavaScript如何查询某个值是否数组内
2017/07/30 Javascript
详解nodejs通过响应回写的方式渲染页面资源
2018/04/07 NodeJs
jQuery实现每隔一段时间自动更换样式的方法分析
2018/05/03 jQuery
[39:11]DOTA2上海特级锦标赛C组资格赛#2 LGD VS Newbee第二局
2016/02/28 DOTA
[01:13:01]2018DOTA2亚洲邀请赛 4.4 淘汰赛 TNC vs VG 第三场
2018/04/05 DOTA
python批量导出导入MySQL用户的方法
2013/11/15 Python
python连接oracle数据库实例
2014/10/17 Python
编写Python脚本来获取mp3文件tag信息的教程
2015/05/04 Python
全面了解Python的getattr(),setattr(),delattr(),hasattr()
2016/06/14 Python
解析python 类方法、对象方法、静态方法
2020/08/15 Python
浅谈基于HTML5的在线视频播放方案
2016/02/18 HTML / CSS
优秀导游先进事迹材料
2014/01/25 职场文书
高一军训的心得体会
2014/09/01 职场文书
竞选大队干部演讲稿
2014/09/11 职场文书
三八红旗手先进事迹材料(2016推荐版)
2016/02/25 职场文书
学校就业保障协议书
2019/06/24 职场文书
超级实用!五步法则,教你写好年终工作总结
2019/12/05 职场文书
利用javaScript处理常用事件详解
2021/04/14 Javascript
纯CSS如何禁止用户复制网页的内容
2021/11/01 HTML / CSS
Win11如何修改dns?Win11修改dns图文教程
2022/01/18 数码科技