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

发布时间 - 2026-01-11 01:45:12    点击率:

前言

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

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

总结

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


# php7新特性  # php7新特性介绍  # php7  # 类型声明  # PHP 8新特性简介  # 简述PHP7.4 新特性和废弃的功能  # php7新特性的理解和比较总结  # PHP5.5新特性之yield理解与用法实例分析  # php7函数  # 声明  # 返回值等新特性介绍  # PHP新特性之字节码缓存和内置服务器  # PHP新特性详解之命名空间、性状与生成器  # PHP7新特性简述  # 聊聊 PHP 8 新特性 Attributes  # 的是  # 则是  # 浮点  # 上了  # 也能  # 我们可以  # 这就  # 布尔  # 这个时候  # 几种  # 什么东西  # 在上面  # 这篇文章  # 只是一个  # 谢谢大家  # 有意义  # 这是因为  # 来实现  # 则会  # 正常运行 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: EditPlus中的正则表达式 实战(4)  使用Dockerfile构建java web环境  javascript事件捕获机制【深入分析IE和DOM中的事件模型】  微信小程序 require机制详解及实例代码  Laravel如何正确地在控制器和模型之间分配逻辑_Laravel代码职责分离与架构建议  如何在HTML表单中获取用户输入并用JavaScript动态控制复利计算循环  Win11怎么关闭资讯和兴趣_Windows11任务栏设置隐藏小组件  Windows10电脑怎么设置虚拟光驱_Win10右键装载ISO镜像文件  Python结构化数据采集_字段抽取解析【教程】  Win10如何卸载预装Edge扩展_Win10卸载Edge扩展教程【方法】  Laravel任务队列怎么用_Laravel Queues异步处理任务提升应用性能  JavaScript中的标签模板是什么_它如何扩展字符串功能  Laravel怎么实现前端Toast弹窗提示_Laravel Session闪存数据Flash传递给前端【方法】  昵图网官网入口 昵图网素材平台官方入口  如何在IIS中新建站点并配置端口与IP地址?  广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?  进行网站优化必须要坚持的四大原则  微信小程序 wx.uploadFile无法上传解决办法  公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?  制作旅游网站html,怎样注册旅游网站?  Laravel如何操作JSON类型的数据库字段?(Eloquent示例)  JavaScript常见的五种数组去重的方式  新三国志曹操传主线渭水交兵攻略  Laravel Facade的原理是什么_深入理解Laravel门面及其工作机制  电视网站制作tvbox接口,云海电视怎样自定义添加电视源?  图册素材网站设计制作软件,图册的导出方式有几种?  如何在万网主机上快速搭建网站?  实例解析angularjs的filter过滤器  深圳网站制作的公司有哪些,dido官方网站?  香港服务器网站推广:SEO优化与外贸独立站搭建策略  浏览器如何快速切换搜索引擎_在地址栏使用不同搜索引擎【搜索】  如何快速上传自定义模板至建站之星?  Windows驱动无法加载错误解决方法_驱动签名验证失败处理步骤  Python企业级消息系统教程_KafkaRabbitMQ高并发应用  如何在云指建站中生成FTP站点?  Laravel如何发送邮件_Laravel Mailables构建与发送邮件的简明教程  如何用y主机助手快速搭建网站?  微博html5版本怎么弄发超话_超话进入入口及发帖格式要求【教程】  简单实现Android文件上传  Laravel如何生成URL和重定向?(路由助手函数)  Android okhttputils现在进度显示实例代码  Python自动化办公教程_ExcelWordPDF批量处理案例  html5怎么画眼睛_HT5用Canvas或SVG画眼球瞳孔加JS控制动态【绘制】  ,在苏州找工作,上哪个网站比较好?  Edge浏览器提示“由你的组织管理”怎么解决_去除浏览器托管提示【修复】  百度输入法全感官ai怎么关 百度输入法全感官皮肤关闭  关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)  Laravel如何记录日志_Laravel Logging系统配置与自定义日志通道  Laravel如何实现数据库事务?(DB Facade示例)  JS碰撞运动实现方法详解