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下过滤html代码的函数 提高程序安全性
Mar 02 PHP
PHP 面向对象详解
Sep 13 PHP
codeigniter自带数据库类使用方法说明
Mar 25 PHP
php取得字符串首字母的方法
Mar 25 PHP
详解PHP实现定时任务的五种方法
Jul 25 PHP
PHP递归遍历指定文件夹内的文件实现方法
Nov 15 PHP
PHP获取页面执行时间的方法(推荐)
Dec 10 PHP
PHP实现基于图的深度优先遍历输出1,2,3...n的全排列功能
Nov 10 PHP
PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】
Jun 13 PHP
php实现将数据做成json的格式给前端使用
Aug 21 PHP
PHP For循环字母A-Z当超过26个字母时输出AA,AB,AC
Feb 16 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面向对象中static静态属性与方法的内存位置分析
2015/02/08 PHP
PHP结合jQuery实现找回密码
2015/07/22 PHP
非常经典的PHP文件上传类分享
2016/05/15 PHP
PHP中session跨子域的三种实现方法
2016/07/25 PHP
php获得刚插入数据的id 的几种方法总结
2018/05/31 PHP
Laravel Eloquent分表方法并使用模型关联的实现
2019/11/25 PHP
php 使用html5 XHR2实现上传文件与进度显示功能示例
2020/03/03 PHP
用函数式编程技术编写优美的 JavaScript
2006/11/25 Javascript
编写兼容IE和FireFox的脚本
2009/05/18 Javascript
jquery绑定原理 简单解析与实现代码分享
2011/09/06 Javascript
js实现无需数据库的县级以上联动行政区域下拉控件
2013/08/14 Javascript
jQuery获得内容和属性示例代码
2014/01/16 Javascript
js实现键盘操作实现div的移动或改变的原理及代码
2014/06/23 Javascript
jQuery实现视频作为全屏幕背景
2014/12/18 Javascript
基于javascript的COOkie的操作实现只能点一次
2014/12/26 Javascript
浅谈JavaScript数据类型及转换
2015/02/28 Javascript
通过Tabs方法基于easyUI+bootstrap制作工作站
2016/03/28 Javascript
巧用weui.topTips验证数据的实例
2017/04/17 Javascript
nuxt框架中路由鉴权之Koa和Session的用法
2018/05/09 Javascript
php中and 和 &amp;&amp;出坑指南
2018/07/13 Javascript
vue-router二级导航切换路由及高亮显示的实现方法
2019/07/10 Javascript
Python实现Linux下守护进程的编写方法
2014/08/22 Python
python使用smtplib模块通过gmail实现邮件发送的方法
2015/05/08 Python
Python 实现链表实例代码
2017/04/07 Python
Python爬取qq空间说说的实例代码
2018/08/17 Python
python中bytes和str类型的区别
2019/10/21 Python
TensorFlow dataset.shuffle、batch、repeat的使用详解
2020/01/21 Python
pandas DataFrame 数据选取,修改,切片的实现
2020/04/24 Python
Python如何转换字符串大小写
2020/06/04 Python
浅谈对python中if、elif、else的误解
2020/08/20 Python
html5本地存储之localstorage 、本地数据库、sessionStorage简单使用示例
2014/05/08 HTML / CSS
荣耀俄罗斯官网:HONOR俄罗斯
2020/10/31 全球购物
会计助理岗位职责
2014/02/17 职场文书
小学节能减排倡议书
2014/05/15 职场文书
巾帼标兵事迹材料
2014/12/26 职场文书
Python使用pandas导入xlsx格式的excel文件内容操作代码
2022/12/24 Python