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 memcache扩展的三种安装方法
Apr 26 PHP
PHP5 面向对象(学习记录)
Dec 02 PHP
关于PHP递归算法和应用方法介绍
Apr 15 PHP
解析php获取字符串的编码格式的方法(函数)
Jun 21 PHP
thinkphp文件引用与分支结构用法实例
Nov 26 PHP
php计算多维数组中所有值总和的方法
Jun 24 PHP
php模板引擎技术简单实现
Mar 15 PHP
yii2整合百度编辑器umeditor及umeditor图片上传问题的解决办法
Apr 20 PHP
PHP魔术方法之__call与__callStatic使用方法
Jul 23 PHP
Redis在Laravel项目中的应用实例详解
Aug 11 PHP
laravel异步监控定时调度器实例详解
Jun 21 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中mysql连接方式PDO使用详解
2015/02/25 PHP
jquery ajax修改全局变量示例代码
2013/11/08 Javascript
js中switch case循环实例代码
2013/12/30 Javascript
Node.js模块加载详解
2014/08/16 Javascript
完美兼容IE,chrome,ff的设为首页、加入收藏及保存到桌面js代码
2014/12/17 Javascript
node.js中格式化数字增加千位符的几种方法
2015/07/03 Javascript
javascript实现方法调用与方法触发小结
2016/03/26 Javascript
微信小程序购物商城系统开发系列-目录结构介绍
2016/11/21 Javascript
nodejs基础知识
2017/02/03 NodeJs
解决JSON.stringify()自动将中文转译成unicode的问题
2018/01/05 Javascript
webpack-dev-server自动更新页面方法
2018/02/22 Javascript
浅析node.js的模块加载机制
2018/05/25 Javascript
js input输入百分号保存数据库失败的解决方法
2018/05/26 Javascript
如何在selenium中使用js实现定位
2020/08/18 Javascript
[45:38]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#1Liquid VS Alliance第一局
2016/03/02 DOTA
[54:33]2018DOTA2亚洲邀请赛小组赛 A组加赛 Liquid vs Optic
2018/04/03 DOTA
python时间整形转标准格式的示例分享
2014/02/14 Python
python中装饰器级连的使用方法示例
2017/09/29 Python
浅谈Python中range和xrange的区别
2017/12/20 Python
详解django中使用定时任务的方法
2018/09/27 Python
使用numba对Python运算加速的方法
2018/10/15 Python
浅谈pyqt5在QMainWindow中布局的问题
2019/06/21 Python
python实现简易学生信息管理系统
2020/04/05 Python
Python 实现图片转字符画的示例(静态图片,gif皆可)
2020/11/05 Python
用sleep间隔进行python反爬虫的实例讲解
2020/11/30 Python
详解Html5页面实现下载文件(apk、txt等)的三种方式
2018/10/22 HTML / CSS
Keds官方网站:购买帆布运动鞋和经典皮鞋
2016/11/12 全球购物
sort命令的作用和用法
2012/11/04 面试题
试用期员工考核制度
2014/01/22 职场文书
创业资金计划书
2014/02/06 职场文书
个人简历中自我评价
2014/02/11 职场文书
党员民主生活会个人整改措施材料
2014/09/16 职场文书
2015年世界环境日演讲稿
2015/03/18 职场文书
JavaScript 防篡改对象的用法示例
2021/04/24 Javascript
漫画「古见同学有交流障碍症」第25卷封面公开
2022/03/21 日漫
通过feDisplacementMap和feImage实现水波特效
2022/04/24 HTML / CSS