本文介绍: 主要用于对比PHP各版本新特性。

1.应用场景

主要用于对比PHP各版本新特性。

2.学习/操作

 

1.文档阅读

PHP 7 新特性 – 收集_穿素白衫的少年的博客-CSDN博客

PHP 8 – 学习/实践_穿素白衫的少年的博客-CSDN博客

PHP: PHP 手册 – Manual — 官方文档

权威的5.6、7.0、7.1、7.2、7.3和7.4 PHP基准(2020) – WP建站 — 不同版本之间的性能基准测试

php版本之间的区别-PHP7-PHP中文网

2.整理输出

Note:

目前最常用版本为:

PHP 5.6

PHP 7.x

PHP 8.x

5.6、7.0、7.1、7.2、7.3、7.4。

其实,有时候大概知道,使用的版本有哪些特性,以及该版本之后的版本有哪些新特性即可

在实际开发时,做好程序测试即可,开发,测试,生产环境一定要保持一致。

2.1 PHP 5.2、5.3、5.4、5.5、5.6 版本区别对比以及新功能详解

PHP5.2之前:autoload, PDO 和 MySQLi, 类型约束

PHP5.2:JSON 支持

PHP5.3:弃用的功能,匿名函数,新增魔术方法,命名空间,后期静态绑定,Heredoc 和 Nowdoc, const, 三元运算符,Phar

PHP5.4:Short Open Tag, 数组简写形式,Traits, 内置 Web 服务器,细节修改

PHP5.5:yield, list() 用于 foreach, 细节修改

PHP5.6: 常量增强,可变函数参数,命名空间增强

2.2 指定版本的变化

PHP 5.3

PHP5.3算是一个非常大的更新,新增了大量新特征,同时也做了一些不向下兼容的修改:

1、匿名函数

$func function($arg){  

   echo $arg;

}

$func('hello');

2、新增了魔术方法 __invoke(),__callStatic();

随着匿名函数的加入,PHP 引入了一个新的魔术方法 __invoke().
该魔术方法会在将一个对象作为函数调用时被调用:

class A
{
    public function __invoke($str)
    {
        print “A::__invoke(): {$str}”;
    }
}

$a = new A;
$a(“Hello World”);
输出毫无疑问是:  A::__invoke(): Hello World
__callStatic() 则会在调用一个不存在的静态方法时被调用。

3、命名空间

<?php

// 命名空间的分隔符是反斜杠,该声明语句必须在文件第一行。
// 命名空间中可以包含任意代码,但只有 **类, 函数, 常量** 受命名空间影响。
namespace XXOOTest;

// 该类的完整限定名是 XXOOTestA , 其中第一个反斜杠表示全局命名空间。
class A{}

// 你还可以在已经文件中定义第二个命名空间,接下来的代码将都位于 OtherTest2 .
namespace OtherTest2;

// 实例化来自其他命名空间的对象:
$a = new XXOOTestA;
class B{}

// 你还可以用花括号定义第三个命名空间
namespace Other {
    // 实例化来自子命名空间的对象:
    $b = new Test2B;

    // 导入来自其他命名空间的名称,并重命名,
    // 注意只能导入类,不能用于函数和常量。
    use XXOOTestA as ClassA
}

PHP 7

PHP 7 新特性 – 收集_穿素白衫的少年的博客-CSDN博客

PHP 8

PHP 8 – 学习/实践_穿素白衫的少年的博客-CSDN博客

后续补充

3.问题/补充

TBD

4.参考

参见上面文档列表

后续补充

原文地址:https://blog.csdn.net/william_n/article/details/126683360

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_50825.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注