php 7新特性之类型申明详解

 更新时间:2017年6月11日 22:11  点击:1453

前言

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

这个改变挺有意义的,这样我们在做一些多人参与的项目的时候,就不会出现参数乱传以及不知道这个函数返回什么东西的问题

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

[!--infotagslink--]

相关文章

  • golang 调用 php7详解及实例

    这篇文章主要介绍了golang 调用 php7详解及实例的相关资料,需要的朋友可以参考下...2017-01-15
  • 带你了解PHP7 性能翻倍的关键

    20岁老牌网页程序语言PHP,最快将在10月底释出PHP 7新版,这是十年来的首次大改版,最大特色是在性能上的大突破,能比前一版PHP 5快上一倍,PHP之父Rasmus Lerdorf表示,甚至能比HHVM虚拟机下的PHP程序性能更快。HHVM 是脸书为自...2015-11-24
  • ES6新特性之变量和字符串用法示例

    这篇文章主要介绍了ES6新特性之变量和字符串用法,结合具体实例形式分析了ES6中变量与字符串的特性、使用方法与相关注意事项,需要的朋友可以参考下...2017-04-03
  • MySQL 5.6 GTID新特性实践

    GTID(Global Transaction ID)是对于一个已提交事务的编号,并且是一个全局唯一的编号。下文给大家介绍MySQL 5.6 GTID新特性实践,感兴趣的朋友一起看看吧...2016-10-20
  • ES6新特性之类(Class)和继承(Extends)相关概念与用法分析

    这篇文章主要介绍了ES6新特性之类(Class)和继承(Extends)相关概念与用法,结合实例形式较为详细的分析了ES6中类(Class)和继承(Extends)的基本概念、语法、使用方法与注意事项,需要的朋友可以参考下...2017-05-27
  • linux中编译安装PHP7并安装Redis扩展Swoole扩展

    前面一篇文章告诉各位简单的安装Redis的方法了,下面我们进行升级了实现在linux中编译安装PHP7并安装Redis扩展Swoole扩展的方法。 编译安装PHP7并安装Redis扩展Swo...2016-11-25
  • 即将发布的jQuery 3 有哪些新特性

    本文主要介绍jQuery 3中一些新增的特性和一些变更的特性,以及一些废弃删除的特性,另外介绍了jQuery 3.0 最大的变化就是彻底放弃对 IE8 的支持,大家可以先看一下。...2016-04-17
  • php7和php5的详细对比

    这篇文章主要介绍了php7和php5详细对比,对此感兴趣的同学,可以自己研究下...2021-04-19
  • 浅析PHP7新功能及语法变化总结

    这篇文章主要介绍了浅析PHP7新功能及语法变化总结的相关资料,需要的朋友可以参考下...2016-06-24
  • ES6新特性之解构、参数、模块和记号用法示例

    这篇文章主要介绍了ES6新特性之解构、参数、模块和记号用法,结合实例形式分析了解构、参数、模块和记号的功能、用法及相关使用注意事项,需要的朋友可以参考下...2017-04-03
  • yum命令安装php7和相关扩展

    本文给大家简单总结了一下在Linux中使用yum命令安装PHP7和其他相关扩展的方法,有需要的小伙伴可以参考下...2016-07-25
  • ES6新特性之函数的扩展实例详解

    这篇文章主要介绍了ES6新特性之函数的扩展,实例形式较为详细的分析了ES6针对函数参数、运算符及相关新特性的扩展操作与注意事项,需要的朋友可以参考下...2017-04-03
  • 最新版本PHP 7 vs HHVM 多角度比较

    PHP 7 是 PHP 社区对 HHVM 的回应。PHP 7 发布的预览版本号称比之前的 PHP 5 的性能要提升100%。不过,PHP 还有一个竞争对手 HHVM (HipHop Virtual Machine) 一个运行 PHP 代码的虚拟工具。二者直接的比较正在升温,那么让我们来看一下他们直接的性能对比吧...2016-02-18
  • PHP 7.1新特性的汇总介绍

    大家都知道PHP 7.1 release版本发布在即,所以这篇文章就给大家整理一下7.1中的一些新特性以供了解。所有内容均选自官方 RFC 文档。有需要的朋友们可以参考借鉴,下面来跟着小编一起学习学习吧。...2017-01-08
  • php7 安装yar 生成docker镜像

    这篇文章主要介绍了php7 安装yar 生成docker镜像,需要的朋友可以参考下...2017-05-21
  • 变量在 PHP7 内部的实现(一)

    这篇文章主要介绍了变量在 PHP7 内部的实现(一)的相关资料,需要的朋友可以参考下...2015-12-24
  • PHP7多线程搭建教程

    这篇文章主要介绍了PHP7多线程搭建教程,需要的朋友可以参考下...2017-04-26
  • 浅谈PHP7中的一些小技巧

    PHP7显著提高了整体性能。实际上主要的特性有null合并运算符或返回类型声明。如果你不知道它们,那么你应该去查看PHP文档。这里有一些很少人知道的、可能有用的特性。...2021-05-30
  • 让你的PHP7更快之Hugepage用法分析

    这篇文章主要介绍了让你的PHP7更快之Hugepage用法,较为详细的分析了php7中Hugepage的功能与具体的设置技巧,需要的朋友可以参考下...2016-06-12
  • PHP7之Mongodb API使用详解

    这篇文章主要介绍了PHP7之Mongodb API使用详解的相关资料,需要的朋友可以参考下...2015-12-28