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 MYSQL中插入当前时间
Apr 06 PHP
php下删除一篇文章生成的多个静态页面
Aug 08 PHP
PHP 第二节 数据类型之转换
Apr 28 PHP
PHP递归调用的小技巧讲解
Feb 19 PHP
destoon公司主页模板风格的添加方法
Jun 20 PHP
兼容ie6浏览器的php下载文件代码分享
Jul 14 PHP
php出现web系统多域名登录失败的解决方法
Sep 30 PHP
php中$_GET与$_POST过滤sql注入的方法
Nov 03 PHP
PHP关键特性之命名空间实例详解
May 06 PHP
PHP 使用二进制保存用户状态的实例
Jan 29 PHP
PHPExcel实现表格导出功能示例【带有多个工作sheet】
Jun 13 PHP
Centos7安装swoole扩展操作示例
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
Zerg剧情介绍
2020/03/14 星际争霸
PHP6 先修班 JSON实例代码
2008/08/23 PHP
php header Content-Type类型小结
2011/07/03 PHP
php添加文章时生成静态HTML文章的实现代码
2013/02/17 PHP
php使用mb_check_encoding检查字符串在指定的编码里是否有效
2013/11/07 PHP
PHP中常用的字符串格式化函数总结
2014/11/19 PHP
php求一个网段开始与结束IP地址的方法
2015/07/09 PHP
PHP使用SWOOLE扩展实现定时同步 MySQL 数据
2017/04/09 PHP
php 多继承的几种常见实现方法示例
2019/11/18 PHP
js资料toString 方法
2007/03/13 Javascript
js读写(删除)Cookie实例详解
2013/04/17 Javascript
jquery使用ajax实现微信自动回复插件
2014/04/28 Javascript
jquery仿搜索自动联想功能代码
2014/05/23 Javascript
javascript实现淡蓝色的鼠标拖动选择框实例
2015/05/09 Javascript
你知道setTimeout是如何运行的吗?
2016/08/16 Javascript
AngularJS变量及过滤器Filter用法分析
2016/11/22 Javascript
jquery dataview数据视图插件使用方法
2016/12/23 Javascript
Angular工具方法学习
2016/12/26 Javascript
jQuery实现倒计时重新发送短信验证码功能示例
2017/01/12 Javascript
vue实现ToDoList简单实例
2017/02/07 Javascript
详解使用Visual Studio Code对Node.js进行断点调试
2017/09/14 Javascript
node.js支持多用户web终端实现及安全方案
2017/11/29 Javascript
解决npm安装Electron缓慢网络超时导致失败的问题
2018/02/06 Javascript
axios 封装上传文件的请求方法
2018/09/26 Javascript
JavaScript 复制对象与Object.assign方法无法实现深复制
2018/11/02 Javascript
基于Node的Axure文件在线预览的实现代码
2019/08/28 Javascript
vue中如何添加百度统计代码
2020/12/19 Vue.js
vue使用echarts画组织结构图
2021/02/06 Vue.js
Python 实现删除某路径下文件及文件夹的实例讲解
2018/04/24 Python
使用python根据端口号关闭进程的方法
2018/11/06 Python
python粘包问题及socket套接字编程详解
2019/06/29 Python
完美解决python3.7 pip升级 拒绝访问问题
2019/07/12 Python
python实现手势识别的示例(入门)
2020/04/15 Python
意大利运动服减价商店:ScontoSport
2020/03/10 全球购物
小学教师暑期培训方案
2014/08/28 职场文书
晶体管单管来复再生式收音机
2021/04/22 无线电