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文本数据库的搜索方法
Oct 09 PHP
php 用checkbox一次性删除多条记录的方法
Feb 23 PHP
让的PHP代码飞起来的40条小技巧(提升php效率)
Apr 12 PHP
PHP提取字符串中的图片地址[正则表达式]
Nov 12 PHP
php数组合并的二种方法
Mar 21 PHP
php匹配字符中链接地址的方法
Dec 22 PHP
Laravel 5框架学习之Blade 简介
Apr 08 PHP
PHP批量去除BOM头内容信息代码
Mar 11 PHP
PHP实现的分解质因数操作示例
Aug 01 PHP
PHP实现微信退款的方法示例
Mar 26 PHP
浅谈laravel框架sql中groupBy之后排序的问题
Oct 17 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
简单常用的幻灯片播放实现代码
2013/09/25 Javascript
jQuery选择器源码解读(五):tokenize的解析过程
2015/03/31 Javascript
jquery实现键盘左右翻页特效
2015/04/30 Javascript
AngularJS学习笔记之ng-options指令
2015/06/16 Javascript
浅谈Jquery核心函数
2015/06/18 Javascript
详解Vue自定义过滤器的实现
2017/01/10 Javascript
Nodejs搭建wss服务器教程
2017/05/24 NodeJs
详解AngularJS2 Http服务
2017/06/26 Javascript
Js中async/await的执行顺序详解
2017/09/22 Javascript
浅谈react-router HashRouter和BrowserRouter的使用
2017/12/29 Javascript
echarts同一页面中四个图表切换的js数据交互方法示例
2018/07/03 Javascript
vue中子组件传递数据给父组件的讲解
2019/01/27 Javascript
JS实现选项卡效果的代码实例
2019/05/20 Javascript
vue指令做滚动加载和监听等
2019/05/26 Javascript
使用layui前端框架弹出form表单以及提交的示例
2019/10/25 Javascript
Python用imghdr模块识别图片格式实例解析
2018/01/11 Python
python实现日常记账本小程序
2018/03/10 Python
解决Tensorflow使用pip安装后没有model目录的问题
2018/06/13 Python
Sanic框架配置操作分析
2018/07/17 Python
python ChainMap的使用和说明详解
2019/06/11 Python
详解python实现小波变换的一个简单例子
2019/07/18 Python
python logging日志模块原理及操作解析
2019/10/12 Python
Python3.7安装keras和TensorFlow的教程图解
2020/06/18 Python
Python-split()函数实例用法讲解
2020/12/18 Python
python实现无边框进度条的实例代码
2020/12/30 Python
移动HTML5前端框架—MUI的使用
2017/12/18 HTML / CSS
美国大城市最热门旅游景点门票:CityPASS
2016/12/16 全球购物
Expedia英国:全球最大的在线旅游公司
2017/09/07 全球购物
本科毕业自我鉴定
2014/03/20 职场文书
日化店促销方案
2014/03/26 职场文书
老公爱的承诺书
2014/03/31 职场文书
初一学生期末评语
2014/04/24 职场文书
《家世》读后感:看家训的力量
2019/12/30 职场文书
python爬虫之爬取笔趣阁小说
2021/04/22 Python
只用20行Python代码实现屏幕录制功能
2021/06/02 Python
mysql数据库实现设置字段长度
2022/06/10 MySQL