`
Tzhennan
  • 浏览: 57940 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

PHP7 常用新特性

 
阅读更多

1.标量类型声明

PHP是一种弱类型的编程语言,因此没有提供任何方法来指定输入参数和返回值的类型,PHP7突破了这种现状,增加了对标量类型(int,float,string,bool)的声明支持,增加declare(strict_types=1)指令声明是否严格类型校验,来看一段代码:

 

declare(strict_types=1)  

function add(int $x, int $y) : int

{

    return $x+ $y;

}  

  

echo add(1, 2); //int(7)  

有效的类型有:class/interfacename, self, array, callable, bool, float, int and string.

如果不开启strict_type,PHP将会尝试帮你转换成要求的类型,而开启之后,会改变PHP就不再做类型转换,类型不匹配就会抛出错误。

 

 

2. ?? ——NULL合并运算符

 

PHP7中添加了NULL合并运算符,不要小看这个“??”,有了它我们就能很方便的获取一个参数,并能在其为空的情况下提供一个默认值。如何??运算符左侧值存在并且不为NULL,则返回左侧,否则将返回其右侧值。

<?php  

 

// 获取user参数的值(如果为空,则用'nobody')  

 

// PHP5中我们这样来实现:  

$username = isset($_GET['user']) ? $_GET['user'] :'nobody';  

 

// PHP7中,使用??运算符更便捷:  

$username = $_GET['user'] ?? 'nobody';  

 

?>

 

 

3.匿名类

匿名类顾名思义没有类名称,其声明和实例化是同时的,PHP7 支持通过 new class 来实例化一个匿名类,可以用来替代一些"用后即焚"的完整类定义。

 

echo (new class() {

    publicfunction myMethod() {

      return"Hello!";

    }

})->myMethod();

  

//Result: Hello!

 

 

4.定义数组常量

define('MYCONSTANT', array('a','b','c'));

 

 

5.结合比较运算符(<=>)

用于比较两个表达式。当$a 大于、等于或小于$b 时它分别返回1、0或-1

// PHP 7之前的写法:比较两个数的大小  

function func ( $ a , $ b ) {

   return ($a < $b) ? -1 : (($a > $b) ? 1 : 0);

}  

 

// PHP新增的操作符 <=>

function func ( $ a , $ b ) {

   return $a <=> $b;

}

 

6.一次捕捉多种类型的异常 / 错误

PHP 7.1 新添加了捕获多种异常/错误类型的语法——通过竖杠“|”来实现。

 

try {

      throw new LengthException("LengthException");

    //   throw new DivisionByZeroError("DivisionByZeroError");

    //   throw new Exception("Exception");

} catch (\DivisionByZeroError | \LengthException $e) {

    echo "出错消息 --- ", $e->getMessage(), PHP_EOL;

} catch (\Exception $e) {

    echo "出错消息 --- ", $e->getMessage(), PHP_EOL;

} finally {

    // ...

}

 

 

7.use 组合声明

use 组合声明可以减少 use 的输入冗余。

 

use PHPGoodTaste\Utils\{

    Util,

    Form,

    Form\Validation,

    Form\Binding

};

 

8. 更多的Error变为可捕获的Exception

 

PHP7实现了一个全局的throwable接口,原来的Exception和部分Error都实现了这个接口(interface), 以接口的方式定义了异常的继承结构。于是,PHP7中更多的Error变为可捕获的Exception返回给开发者,如果不进行捕获则为Error,如果捕获就变为一个可在程序内处理的Exception。这些可被捕获的Error通常都是不会对程序造成致命伤害的Error,例如函数不存。PHP7进一步方便开发者处理,让开发者对程序的掌控能力更强。因为在默认情况下,Error会直接导致程序中断,而PHP7则提供捕获并且处理的能力,让程序继续执行下去,为程序员提供更灵活的选择。

 

例如,执行一个我们不确定是否存在的函数,PHP5兼容的做法是在函数被调用之前追加的判断function_exist,而PHP7则支持捕获Exception的处理方式。

分享到:
评论

相关推荐

    亲测thinkphp3.1.3完美支持php7 thinkphp3.1.3--for php7.zip

    2. **语法变更**:PHP7引入了一些新的语法特性,例如 scalar type hints(标量类型声明)、void return type(void返回类型)等,这些在ThinkPHP3.1.3中可能已经被适配,开发者在编写代码时需要遵循这些新规则。...

    sublime集成了PHP常用插件

    "sublime集成了PHP常用插件"这个标题表明了Sublime Text针对PHP开发进行了优化,配备了丰富的插件支持,使得PHP程序员的工作效率得以提升。下面将详细探讨Sublime Text作为PHP编辑器的优势以及它所集成的常用PHP插件...

    php常用的技术

    ...初学者应该了解变量、数据类型(如字符串、整型...以上就是PHP常用的一些技术点,掌握它们将有助于你更好地理解和开发PHP应用。随着经验的增长,你还可以深入学习更多的高级话题,如设计模式、性能优化、并发处理等。

    PHP语言常用手册最新版

    **PHP语言常用手册最新版**是一本全面覆盖PHP编程的权威指南,旨在为初学者和经验丰富的开发者提供必要的知识和参考资料。手册分为多个部分,详细阐述了PHP的基础、进阶特性以及安全实践,帮助用户更好地理解和应用...

    20个php常用类库

    根据给定的信息,我们可以整理出20个常用的PHP类库,并对其中部分类库进行详细介绍。这些类库在Web开发中十分常见,可以帮助开发者高效地完成项目。 ### 1. GD - **简介**:GD 是一个用于动态图像创建的 PHP 扩展,...

    php常用技术分享

    【标题】:“PHP常用技术分享” 在Web开发领域,PHP是一种广泛应用的服务器端脚本语言,以其灵活性、易学性和丰富的库支持而受到广大开发者喜爱。这篇“PHP常用技术分享”将深入探讨PHP的一些核心技术和实用技巧,...

    关于PHP的基本概念、特性、常用框架和应用领域的简要介绍

    ### 关于PHP的基本概念、特性、常用框架和应用领域的详细介绍 #### 一、基本概念 **服务器端脚本**:PHP 代码在服务器上执行,生成的 HTML 内容发送到客户端浏览器。这种方式使得服务器可以根据用户的请求动态生成...

    浅谈php常用的7大框架的优缺点

    本文将讨论PHP常用的七大框架,它们分别是ThinkPHP、Yii2、Laravel、CodeIgniter、Zend Framework、Yaf和Symfony(尽管Symfony未在提供的内容中被提及,但作为较为流行的框架,也包含在讨论范围内),并分析它们各自...

    新东方php、mysql常用的帮组文档与教案

    标题中的“新东方php、mysql常用的帮组文档与教案”表明了这是一份针对初学者或正在学习PHP和MySQL的人准备的教学资源。新东方作为知名的教育机构,其教材通常具有系统性和实用性,可以帮助学习者更好地理解和掌握这...

    php开发常用手册 php开发指南

    《PHP开发常用手册》是一份综合性的资源,旨在帮助开发者深入理解和熟练运用PHP语言进行Web开发。这份手册包含了多个子文件,每个子文件都聚焦于PHP开发的不同方面,旨在为初学者和经验丰富的开发者提供全面的指导。...

    PHP PHP7.4.30 程序及常见组合rpm 包打包下载

    PHP7是PHP的第七个主要版本系列,带来了显著的性能提升和新的语言特性。PHP7.4.30是这个系列的一个特定版本,包含了多个小版本的改进和修复。"PHP漏洞"提示我们需要关注安全更新,"PHP升级包"则表明这是一个用于升级...

    PHP常用代码大全

    《PHP常用代码大全》这一资料集,为广大的PHP开发者提供了丰富的编程素材和实用的代码片段,涵盖了PHP语言的核心功能和常见应用场景,是提升开发效率、优化代码质量的宝贵资源。下面,我们将深入探讨这份资料中提及...

    PHP7新特性foreach 修改示例介绍

    随着PHP的版本更新,特别是PHP7,`foreach`循环引入了一些新的特性和行为变化,这使得代码的执行更加高效且易于理解。以下是关于PHP7 `foreach`新特性的详细说明: **一、数组内部指针不再受影响** 在PHP7之前,`...

    php语法之php常用类

    以上是PHP中常用的类和面向对象特性。理解并熟练应用这些概念,可以帮助你编写更高效、更易于维护的PHP代码。在实际开发中,还会遇到更多的类库和框架,它们基于这些基础概念构建,提供了丰富的功能和工具。

    最常用php类集合 分页类 mysql类等等

    【标题】中的“最常用php类集合”指的是一个包含了多种常用PHP类的资源包,这些类可以帮助开发者更高效地处理常见的编程任务。在PHP开发中,类是对象的蓝图,可以封装数据和方法,使代码更加模块化和可重用。 ...

    php常用工具安装包汇总.zip

    这个"php常用工具安装包汇总.zip"压缩包集合了多种PHP开发中常用的工具,涵盖了从编辑器、调试器到性能分析等多个方面。以下是这些工具的详细介绍: 1. **编辑器与IDE** - **PhpStorm**:JetBrains公司开发的一款...

    php及MySQL常用知识整合

    "PHP常用函数总结表pp.xls"可能是一个详尽的函数参考,涵盖字符串处理、数组操作、文件I/O、日期与时间处理、错误处理等方面。了解这些函数对于提高PHP编程效率至关重要。 接下来,我们转向MySQL。MySQL是用于存储...

    php后台常用代码

    9. 面向对象编程:PHP支持面向对象特性,如类、对象、继承、封装和多态。`class`定义类,`__construct()`为构造方法,`extends`用于继承,`public`, `private`, `protected`修饰访问权限。 10. 模板引擎:为了分离...

    php常用的class类

    "php常用的class类"这个主题涵盖了PHP开发中经常使用的30个类,它们可以帮助开发者在实际项目中快速构建功能丰富的应用程序。以下是一些常见的PHP类及其主要用途: 1. **Exception** - 异常处理类,用于捕获和处理...

Global site tag (gtag.js) - Google Analytics