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 截取字符串 分别适合GB2312和UTF8编码情况
Feb 12 PHP
php中根据某年第几天计算出日期年月日的代码
Feb 24 PHP
PHP实现多进程并行操作的详解(可做守护进程)
Jun 18 PHP
PHP开发框架laravel安装与配置教程
Mar 13 PHP
浅谈PHP Cookie处理函数
Jun 10 PHP
PHP实现的网站目录扫描索引工具
Sep 08 PHP
php 截取utf-8格式的字符串实例代码
Oct 30 PHP
php基于ob_start(ob_gzhandler)实现网页压缩功能的方法
Feb 18 PHP
php生成复杂验证码(倾斜,正弦干扰线,黏贴,旋转)
Mar 12 PHP
PHP编程实现的TCP服务端和客户端功能示例
Apr 13 PHP
Laravel 验证码认证学习记录小结
Dec 20 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 socket(fsockopen)的应用实例分析
2013/06/02 PHP
windows7下php开发环境搭建图文教程
2015/01/06 PHP
yii2中的rules 自定义验证规则详解
2016/04/19 PHP
php实现基于pdo的事务处理方法示例
2017/07/21 PHP
php无限级分类实现评论及回复功能
2019/02/18 PHP
javascript:void(0)的问题使用探讨
2014/04/10 Javascript
jquery实现的导航固定效果
2014/04/28 Javascript
用JavaScript实现使用鼠标画线的示例代码
2014/08/19 Javascript
超级简单实现JavaScript MVC 样式框架
2015/03/24 Javascript
Javascript实现字数统计
2015/07/03 Javascript
easyui Draggable组件实现拖动效果
2015/08/19 Javascript
javascript禁止超链接跳转的方法
2016/02/02 Javascript
jQuery插件ajaxfileupload.js实现上传文件
2020/10/23 Javascript
jQuery插件echarts实现的循环生成图效果示例【附demo源码下载】
2017/03/04 Javascript
vue中的scope使用详解
2017/10/29 Javascript
浅谈webpack-dev-server的配置和使用
2018/05/17 Javascript
解决layer弹出层中表单不起作用的问题
2019/09/09 Javascript
Vue extend的基本用法(实例详解)
2019/12/09 Javascript
vue.js实现简单的计算器功能
2020/02/22 Javascript
在js文件中引入(调用)另一个js文件的三种方法
2020/09/11 Javascript
简单讲解Python中的数字类型及基本的数学计算
2016/03/11 Python
ubuntu 18.04搭建python环境(pycharm+anaconda)
2019/06/14 Python
基于Python实现船舶的MMSI的获取(推荐)
2019/10/21 Python
python 爬取马蜂窝景点翻页文字评论的实现
2020/01/20 Python
python自定义函数def的应用详解
2020/06/03 Python
使用html5实现表格实现标题合并的实例代码
2019/05/13 HTML / CSS
英国国家美术馆商店:National Gallery
2019/05/01 全球购物
空指针到底是什么
2012/08/07 面试题
TCP/IP中的TCP和IP分别承担什么责任
2012/04/21 面试题
四川成都导游欢迎词
2014/01/18 职场文书
职工运动会邀请函
2014/02/02 职场文书
加油口号大全
2014/06/13 职场文书
征兵宣传标语
2014/06/20 职场文书
信用卡收入证明范本
2015/06/12 职场文书
青少年法制教育心得体会
2016/01/14 职场文书
领导干部学习心得体会
2016/01/23 职场文书