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 register_globals 值为on与off的理解
Sep 26 PHP
PHP数组操作――获取数组最后一个值的方法
Apr 14 PHP
php实现的简单检验登陆类
Jun 18 PHP
php获取错误信息的方法
Jul 17 PHP
php实现的xml操作类
Jan 15 PHP
Linux环境下php实现给网站截图的方法
May 03 PHP
THINKPHP在添加数据的时候获取主键id的值方法
Apr 03 PHP
PHP使用glob方法遍历文件夹下所有文件的实例
Oct 17 PHP
php微信公众号开发之关键词回复
Oct 20 PHP
Yii框架的redis命令使用方法简单示例
Oct 15 PHP
laravel csrf排除路由,禁止,关闭指定路由的例子
Oct 21 PHP
Laravel的加密解密与哈希实例讲解
Mar 24 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
Array of country list in PHP with Zend Framework
2011/10/17 PHP
表格展示无限级分类(PHP版)
2012/08/21 PHP
php的declare控制符和ticks教程(附示例)
2014/03/21 PHP
PHP实现通过URL提取根域名
2016/03/31 PHP
使用JavaScript创建新样式表和新样式规则
2016/06/14 PHP
php 截取utf-8格式的字符串实例代码
2016/10/30 PHP
关于ThinkPhp 框架表单验证及ajax验证问题
2017/07/19 PHP
laravel 5.5 关闭token的3种实现方式
2019/10/24 PHP
jquery ui dialog ie8出现滚动条的解决方法
2010/12/06 Javascript
利用jQuery操作对象数组的实现代码
2011/04/27 Javascript
document节点对象的获取方式示例介绍
2013/12/24 Javascript
js的toLowerCase方法用法实例
2015/01/27 Javascript
jQuery+HTML5+CSS3制作支持响应式布局时间轴插件
2016/08/10 Javascript
js仿支付宝多方框输入支付密码效果
2016/09/27 Javascript
Bootstrap Navbar Component实现响应式导航
2016/10/08 Javascript
Javascript中字符串和数字的操作方法整理
2017/01/22 Javascript
Base64(二进制)图片编码解析及在各种浏览器的兼容性处理
2017/02/09 Javascript
ES6中Symbol类型用法实例详解
2017/04/06 Javascript
JS把字符串格式的时间转换成几秒前、几分钟前、几小时前、几天前等格式
2019/07/10 Javascript
JS根据Unix时间戳显示发布时间是多久前【项目实测】
2019/07/10 Javascript
解决微信小程序scroll-view组件无横向滚动的问题
2020/02/04 Javascript
vue使用自定义事件的表单输入组件用法详解【日期组件与货币组件】
2020/06/01 Javascript
vue+element实现动态加载表单
2020/12/13 Vue.js
详解vite2.0配置学习(typescript版本)
2021/02/25 Javascript
[01:23]2019完美世界全国高校联赛(春季赛)合肥全国总决赛
2019/06/10 DOTA
Python类的基础入门知识
2008/11/24 Python
Python中使用wxPython开发的一个简易笔记本程序实例
2015/02/08 Python
简单介绍Python中的decode()方法的使用
2015/05/18 Python
Python通用循环的构造方法实例分析
2018/12/19 Python
Python基于Tkinter模块实现的弹球小游戏
2018/12/27 Python
python-tkinter之按钮的使用,开关方法
2019/06/11 Python
python设置代理和添加镜像源的方法
2020/02/14 Python
Python流程控制常用工具详解
2020/02/24 Python
Html5中的桌面通知Notification的实现
2018/09/25 HTML / CSS
护士实习求职信
2014/06/22 职场文书
话题作文之财富(600字)
2019/12/03 职场文书