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 相关文章推荐
一个多文件上传的例子(原创)
Oct 09 PHP
PHP重定向的3种方式
Mar 07 PHP
PHP5.3安装Zend Guard Loader图文教程
Sep 29 PHP
ThinkPHP上使用多说评论插件的方法
Oct 31 PHP
php去除数组中重复数据
Nov 18 PHP
PHP通过微信跳转的Code参数获取用户的openid(关键代码)
Jul 06 PHP
thinkphp自带验证码全面解析
Sep 18 PHP
php 5.4 全新的代码复用Trait详解
Jan 05 PHP
thinkphp分页集成实例
Jul 24 PHP
php实现socket推送技术的示例
Dec 20 PHP
PHP封装的数据库模型Model类完整示例【基于PDO】
Mar 14 PHP
基于PHP+mysql实现新闻发布系统的开发
Aug 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
解析linux下安装memcacheq(mcq)全过程笔记
2013/06/27 PHP
php5.4传引用时报错问题分析
2016/01/22 PHP
PHP实现读取文件夹及批量重命名文件操作示例
2019/04/15 PHP
php实现文件上传基本验证
2020/03/04 PHP
PhpStorm连接服务器并实现自动上传功能
2020/12/09 PHP
通过Unicode转义序列来加密,按你说的可以算是混淆吧
2007/05/06 Javascript
js 事件处理函数间的Event物件是否全等
2011/04/08 Javascript
js实现图片轮换效果代码
2013/04/16 Javascript
document.compatMode的CSS1compat使用介绍
2014/04/03 Javascript
ActiveX控件与Javascript之间的交互示例
2014/06/04 Javascript
深入浅析JavaScript中的Function类型
2016/07/09 Javascript
AngularJS定时器的使用与移除操作方法【interval与timeout】
2016/12/14 Javascript
JavaScript实现获取远程的html到当前页面中
2017/03/26 Javascript
Vue仿今日头条实例详解
2018/02/06 Javascript
对Layer UI 模块化的用法详解
2019/09/26 Javascript
Element Carousel 走马灯的具体实现
2020/07/26 Javascript
解决idea开发遇到javascript动态添加html元素时中文乱码的问题
2020/09/29 Javascript
如何在Vue项目中添加接口监听遮罩
2021/01/25 Vue.js
使用Python编写Linux系统守护进程实例
2015/02/03 Python
Flask入门教程实例:搭建一个静态博客
2015/03/27 Python
使用Python的Twisted框架编写简单的网络客户端
2015/04/16 Python
Python实现计算文件夹下.h和.cpp文件的总行数
2015/04/23 Python
Python爬取当当、京东、亚马逊图书信息代码实例
2017/12/09 Python
Python切片工具pillow用法示例
2018/03/30 Python
查看TensorFlow checkpoint文件中的变量名和对应值方法
2018/06/14 Python
Python如何发布程序的详细教程
2018/10/09 Python
python同时遍历数组的索引和值的实例
2018/11/15 Python
利用Django提供的ModelForm增删改数据的方法
2019/01/06 Python
Python实现定时自动关闭的tkinter窗口方法
2019/02/16 Python
在Pandas中处理NaN值的方法
2019/06/25 Python
python 代码实现k-means聚类分析的思路(不使用现成聚类库)
2020/06/01 Python
Travelstart沙特阿拉伯:廉价航班、豪华酒店和实惠的汽车租赁优惠
2019/04/06 全球购物
一夜的工作教学反思
2014/02/08 职场文书
小学生节约用水倡议书
2014/05/15 职场文书
汽车销售员岗位职责
2015/04/11 职场文书
优秀教师工作总结2015
2015/07/22 职场文书