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 相关文章推荐
实用函数3
Nov 08 PHP
mayfish 数据入库验证代码
Apr 30 PHP
比较简单实用的PHP无限分类源码分享(思路不错)
Oct 13 PHP
基于PHP选项与信息函数的使用详解
May 10 PHP
PHP CodeBase:将时间显示为&quot;刚刚&quot;&quot;n分钟/小时前&quot;的方法详解
Jun 06 PHP
解析thinkphp基本配置 convention.php
Jun 18 PHP
关于crontab的使用详解
Jun 24 PHP
提升PHP性能的21种方法介绍
Jun 25 PHP
php实现图片文件与下载文件防盗链的方法
Nov 03 PHP
PHP实现linux命令tail -f
Feb 22 PHP
PHP实现的折半查找算法示例
Dec 19 PHP
php设计模式之状态模式实例分析【星际争霸游戏案例】
Mar 26 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实现域名whois查询的代码(数据源万网、新网)
2010/02/22 PHP
php.ini中date.timezone设置分析
2011/07/29 PHP
linux中cd命令使用详解
2015/01/08 PHP
php数组键名技巧小结
2015/02/17 PHP
PHP 二级子目录(后台目录)设置二级域名
2017/03/02 PHP
js对table的td进行相同内容合并示例详解
2013/12/27 Javascript
jquery获取radio值(单选组radio)
2014/10/16 Javascript
DOM事件阶段以及事件捕获与事件冒泡先后执行顺序(图文详解)
2015/08/18 Javascript
jQuery给div,Span, a ,button, radio 赋值与取值
2016/06/24 Javascript
AngularJS内建服务$location及其功能详解
2016/07/01 Javascript
JavaScript 链式结构序列化详解
2016/09/30 Javascript
微信小程序tabBar底部导航中文注解api详解
2017/08/16 Javascript
详解vue-cli项目中的proxyTable跨域问题小结
2018/02/09 Javascript
浅析Visual Studio Code断点调试Vue
2018/02/27 Javascript
Vue 中使用vue2-highcharts实现top功能的示例
2018/03/05 Javascript
Angular模版驱动表单的使用总结
2018/05/05 Javascript
vue中Axios的封装与API接口的管理详解
2018/08/09 Javascript
在Python程序中操作文件之isatty()方法的使用教程
2015/05/24 Python
Python Sql数据库增删改查操作简单封装
2016/04/18 Python
Flask模拟实现CSRF攻击的方法
2018/07/24 Python
Django错误:TypeError at / 'bool' object is not callable解决
2019/08/16 Python
浅谈Pytorch中的torch.gather函数的含义
2019/08/18 Python
python多线程同步之文件读写控制
2021/02/25 Python
pyecharts绘制中国2020肺炎疫情地图的实例代码
2020/02/12 Python
通过python调用adb命令对App进行性能测试方式
2020/04/23 Python
python多线程和多进程关系详解
2020/12/14 Python
OpenCV+Python3.5 简易手势识别的实现
2020/12/21 Python
python绘图模块之利用turtle画图
2021/02/12 Python
REISS美国官网:伦敦最受欢迎的时尚品牌
2019/08/16 全球购物
租房协议书
2014/04/10 职场文书
2015年健康教育工作总结
2015/04/10 职场文书
机器人瓦力观后感
2015/06/12 职场文书
2015年中学总务处工作总结
2015/07/22 职场文书
世界十大狙击步枪排行榜
2022/03/20 杂记
我们认为中短波广播场强仪的最佳组合
2022/04/05 无线电
关于MySQL中explain工具的使用
2023/05/08 MySQL