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 分页类(模仿google)-面试题目解答
Sep 13 PHP
php生成随机密码的三种方法小结
Sep 04 PHP
PHP实现今天是星期几的几种写法
Sep 26 PHP
php和jquery实现地图区域数据统计展示数据示例
Feb 12 PHP
ThinkPHP中自定义目录结构的设置方法
Aug 15 PHP
ThinkPHP模板之变量输出、自定义函数与判断语句用法
Nov 01 PHP
windows中为php安装mongodb与memcache
Jan 06 PHP
PHP使用stream_context_create()模拟POST/GET请求的方法
Apr 02 PHP
php使用pear_smtp发送邮件
Apr 15 PHP
php 指定范围内多个随机数代码实例
Jul 18 PHP
PHP中str_split()函数的用法讲解
Apr 11 PHP
Laravel框架实现的上传图片到七牛功能详解
Sep 06 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中冒号、endif、endwhile、endfor使用介绍
2010/04/28 PHP
SWFUpload与CI不能正确上传识别文件MIME类型解决方法分享
2011/04/18 PHP
php数字每三位加逗号的功能函数
2015/10/22 PHP
深入解析PHP的Laravel框架中的event事件操作
2016/03/21 PHP
php简单实现多语言切换的方法
2016/05/09 PHP
非常经典的PHP文件上传类分享
2016/05/15 PHP
PHP使用strrev翻转中文乱码问题的解决方法
2017/01/13 PHP
PHP网页缓存技术优点及代码实例
2020/07/29 PHP
apycom出品的jQuery精美菜单破解方法
2011/02/18 Javascript
Jquery对新插入的节点 绑定Click事件失效的解决方法
2016/06/02 Javascript
Angularjs cookie 操作实例详解
2017/09/27 Javascript
微信小程序wx.previewImage预览图片实例详解
2017/12/07 Javascript
jQuery中each方法的使用详解
2018/03/18 jQuery
vue.js打包之后可能会遇到的坑!
2018/06/03 Javascript
Node.js 实现简单的无侵入式缓存框架的方法
2019/07/21 Javascript
javascript简单实现深浅拷贝过程详解
2019/10/08 Javascript
nginx部署多个vue项目的方法示例
2020/09/06 Javascript
js实现点击烟花特效
2020/10/14 Javascript
pyside写ui界面入门示例
2014/01/22 Python
Python编程pygame模块实现移动的小车示例代码
2018/01/03 Python
Tornado Web Server框架编写简易Python服务器
2018/07/28 Python
详解Python给照片换底色(蓝底换红底)
2019/03/22 Python
Django Rest framework解析器和渲染器详解
2019/07/25 Python
python getpass模块用法及实例详解
2019/10/07 Python
使用pygame写一个古诗词填空通关游戏
2019/12/03 Python
python实现猜拳游戏
2020/03/04 Python
纽约通行卡:The New York Pass(免费游览纽约90多个景点)
2017/07/29 全球购物
意大利高端时尚买手店:Stefania Mode
2018/03/01 全球购物
匡威西班牙官网:Converse西班牙
2019/10/01 全球购物
彪马法国官网:PUMA法国
2019/12/15 全球购物
恒华伟业笔试面试题
2015/02/26 面试题
中级会计职业生涯规划范文
2014/01/16 职场文书
小学生安全保证书
2014/02/01 职场文书
计算机维护专业推荐信
2014/02/27 职场文书
关于环保的建议书400字
2014/03/12 职场文书
群众路线学习心得体会范文
2014/11/05 职场文书