`
GavinHsueh
  • 浏览: 70907 次
文章分类
社区版块
存档分类
最新评论

PHP7中我们应该学习会用的新特性

阅读更多

PHP7201511月正式发布,本次更新可谓是PHP的重要里程碑,它将带来显著的性能改进和新特性,并对之前版本的一些特性进行改进。本文小编将和大家一起来了解探讨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(12);  //int(7)

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

 

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() {
    public function myMethod() {
      return "Hello!";
    }
})->myMethod(); //Result: Hello!

 

4. 更多Error错误可以进行异常处理

PHP7中更多的Error变为可捕获的Exception返回给开发者,如果不进行捕获则为Error,如果捕获就变为一个可在程序内处理的Exception。默认情况下,Error会直接导致程序中断,而PHP7则通过try / catch程序块捕获并且处理,让程序继续执行下去,为程序员提供更灵活的选择。

代码示例:

nonExistFunction($arg); // It will generate fatal error

这时上面的代码会提示错误“Fatal error: Call to a member function method() on a non-object ”,并且这个致命错误会停止后面代码的继续执行。

所以如果你想继续执行代码,可以通过异常处理的方式解决:

try {
    nonExistFunction($arg); //This method is not exists then it will be go to catchcatch (EngineException $e ) {
    echo "Exception: {$e->getMessage()}\n";
}

 

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

这个不多解释,我们直接看示例代码,通过代码你可以很容易了解该运算符的作用。

// PHP 7之前的写法:比较两个数的大小 function func ( $ a , $ b ) {
   return ($a < $b) ? -1 : (($a > $b) ? 1 : 0)
} // PHP新增的操作符 <=> function func ( $ a , $ b ) {
   return $a <=> $b;
}

 

6.定义数组常量

过去我们在用define()定义常量时,数据类型只支持标量,但在PHP7中,支持定义数组类型的常量。

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

 

PHP7新增的特性还有很多,今天我们先介绍到这,后续会持续更新,同时也欢迎广大PHPer补充,我们共同交流,共同学习,共同进步。

0
0
分享到:
评论

相关推荐

    php7新特性

    在PHP7中,开发者们引入了一系列的新特性和性能优化手段,这些改变不仅提高了代码执行的效率,还增强了代码的健壮性和可读性。以下将详细介绍PHP7中的几个关键新特性: 1. PHPNG–Engine Refactor(引擎重构) ...

    php7新特性的理解和比较总结

    PHP 7是PHP语言的一个主要...以上知识点展示了PHP 7中新增的特性,这些特性增强了语言的表达力、类型安全性,并提高了代码的可读性和开发效率。学习和掌握这些新特性,可以帮助PHP开发者编写更加现代化和高效的代码。

    PHP7必知的几个新特性编程小技巧共4页.pdf.zip

    虽然无法直接查看压缩包内的内容,但根据标题和标签,我们可以推测其主要涵盖了以下几个PHP7的重要新特性: 1. **性能提升**:PHP7相对于PHP5有了显著的性能提升,主要是由于全新的 Zend 引擎。它优化了内存管理和...

    php7.3.8学习手册.zip

    通过《PHP 7.3.8学习手册》的深入学习,开发者不仅可以掌握PHP 7.3.8的最新特性,还能了解到如何利用这些特性来编写高效、安全的代码,从而在实际项目中发挥出PHP的强大功能。无论你是初学者还是经验丰富的开发者,...

    PHP7中文手册(2018)_PHP7中文手册_

    **语言参考** 部分是手册的核心,它详细介绍了PHP7中的各种语法结构、变量、控制结构、循环、函数、类与对象、命名空间等基础概念。例如,PHP7引入了弱类型声明(`$var = null`),增强了类型提示(`function foo...

    PHP 最新中文手册

    在PHP 7中,空数组和未定义的变量在解构时都会得到一个空值,简化了解构过程,减少了条件判断。 **返回类型声明** PHP 7允许开发者为函数声明返回类型,这有助于在编译阶段捕获类型不匹配的错误,提高了代码质量。 ...

    PHP学习PHP学习PHP学习

    "PHP学习PHP学习PHP学习"的标题和描述暗示了我们将会深入探讨PHP编程的基础和高级概念,以及如何通过实践来提升PHP技能。 1. **PHP简介**:PHP是“Hypertext Preprocessor”的缩写,它是一种解释型、通用的、动态的...

    PHP7 中文参考手册

    - **异常处理**:PHP7中,传统的错误报告方式被替换为异常处理,使得错误处理更加一致且可控。 - **Fatal Error 的改进**:致命错误现在可以抛出异常,使得程序有机会捕获并处理这些错误,而不是直接崩溃。 4. **...

    PHP学习笔记、PHP实例

    ### PHP学习笔记与实例解析 #### 第一章:PHP高级语法与功能 ##### PHP的`date()`函数 `date()`函数是PHP中用于格式化日期和时间的强大工具。它可以将Unix时间戳转换成人类可读的日期和时间格式。这个函数有两个...

    php7中文手册

    这份手册详细解释了这些新特性,以及PHP7中的其他重要概念,如类、对象、接口、命名空间、文件输入/输出、网络编程、数据库交互、正则表达式、日期和时间处理等。对于PHP7的初学者和经验丰富的开发者来说,都是一个...

    最新版php7手册

    PHP7中新增了空合并操作符(Null Coalescing Operator)`??`,它允许开发者简洁地检查变量是否为空并提供默认值。例如,`$value = $array['key'] ?? 'default';` 如果`$array['key']`不存在或值为`null`,则`$value`...

    PHP7中文手册(2018).chm

    7. **统一的空值判断**:在PHP7中,NULL、false、0、""、array()以及null对象都被视为假值,这简化了条件判断逻辑。 8. **弃用和移除的功能**:为了提高语言的清晰度和一致性,PHP7移除了一些过时的函数和特性,如`...

    php入门学习心得

    在PHP的世界里,初学者经常会面临许多挑战,但掌握这个强大的服务器端脚本语言是值得的,因为它可以为你的网站开发带来无尽的可能性。...希望我的这些心得能为你的PHP学习之路提供一些启示和帮助。

    php新手学习视频

    此后,PHP不断推出新版本,如PHP 7、PHP 8等,极大地提高了性能并增加了更多现代特性。 ### 学习资源推荐 #### 燕十八的免费PHP视频教程 燕十八是一位知名的IT教育者,他的PHP教程深受初学者喜爱。这套教程涵盖了...

    PHP 7从入门到精通(视频教学版)_刘增杰,张工厂编著

    书中会讲解如何利用这些性能提升来编写更高效的代码,如使用新引入的NULL合并运算符(??)和空值合并运算符(??=),以及如何避免使用可能导致性能下降的旧特性。 安全问题不容忽视,PHP 7在安全方面也有改进,例如...

    php软件学习.rar

    这些教程可能还会涵盖如何安装和配置PHP开发环境,以及如何使用编辑器的高级特性。 2. **示例代码**:为了更好地理解和实践,工具包可能包括一些示例PHP脚本,涵盖了常见的web开发场景,比如用户注册、登录系统、...

    php 学习(教程,源码)

    在提供的“php学习”资源中,可能会包含这些基础知识的教程,帮助新手快速入门。 进一步深入,你需要了解面向对象编程(OOP)在PHP中的应用,包括类、对象、继承、封装和多态。PHP5引入了全面的OOP支持,使得PHP...

    php扩展学习PDF

    通过学习,你将能够为PHP世界贡献新的功能,或者对现有的扩展进行改进,提升整体应用的性能和效率。同时,这样的知识也会对你的职业发展产生积极的影响,使你成为一名更全面、更具竞争力的PHP开发者。

    零基础学习PHP-从零开始学习PHP-PHP基础教程

    PHP(Hypertext Preprocessor,超文本预处理器)是一种广泛使用的开源服务器端脚本语言,尤其...希望这个“零基础学习PHP-从零开始学习PHP-PHP基础教程”能助你在PHP学习之路上一臂之力,让你逐步成为PHP开发的专家。

    升级到PHP 7(Davey Shafik)Upgrading to PHP 7 (Davey Shafik)

    本书专注于PHP的新版本——PHP 7中的重大变化。PHP 7代表了这一流行服务器端脚本语言的一个重大版本升级,带来了一系列的新特性和改进,以及对旧特性的清理。在这个版本中,性能得到了显著的提升,同时对开发者而言...

Global site tag (gtag.js) - Google Analytics