Heim > Backend-Entwicklung > PHP-Problem > Welche PHP-Version soll ich verwenden?

Welche PHP-Version soll ich verwenden?

王林
Freigeben: 2023-02-24 20:20:01
Original
4617 Leute haben es durchsucht

Welche PHP-Version soll ich verwenden?

PHP各个版本之间的区别

一、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: 常量增强,可变函数参数,命名空间增强

1.php5.2以前

1.1 autoload的使用

当在代码中使用一个未定义的类的时候,该函数就会被调用,现在已经不再使用了,因为一个项目中只能有一个__autoload();现在使用spl_autoload_register();

1.2 PDO和MiSQLi的使用

1.3 类型约束。

通过类型约束可以限制参数的类型,不过这个机制不完善。

2. php5.2 

2.1 JSON的支持

增加了json_encode(),json_decode()等函数

3.php5.3

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

3.1 弃用的功能

3.2 匿名函数

$func=function($arg){
   echo $arg;
}
$func('hello');
Nach dem Login kopieren

3.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() 则会在调用一个不存在的静态方法时被调用。
Nach dem Login kopieren

3.3命名空间

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

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

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

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

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

    // 导入来自其他命名空间的名称,并重命名,
    // 注意只能导入类,不能用于函数和常量。
    use \XXOO\Test\A as ClassA
}
Nach dem Login kopieren

3.4后期静态绑定

#self 的语义本来就是“当前类”
class A
{
    static public function callFuncXXOO()
    {
        print static::funcXXOO();
    }

    // ...
}
Nach dem Login kopieren

二、PHP7新特性

./bin/php -v  #查看PHP版本
./bin/php -m  #查看安装的模块
Nach dem Login kopieren

1、变量类型

function test(int $a,string $b,array $c):int{


}
Nach dem Login kopieren

2、错误异常

try/catch
Nach dem Login kopieren

3、zval使用栈内存

节约了内存分配
php5
zval*val;make_std_zval(val);

php7 zval val;
Nach dem Login kopieren

推荐教程:PHP视频教程

Das obige ist der detaillierte Inhalt vonWelche PHP-Version soll ich verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage