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');
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() 则会在挪用一个不存在的静态要领时被挪用。
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 }
3.4后期静态绑定
#self 的语义原本就是“当前类” class A { static public function callFuncXXOO() { print static::funcXXOO(); } // ... }
二、PHP7新特征
./bin/php -v #检察PHP版本 ./bin/php -m #检察装置的模块
1、变量范例
function test(int $a,string $b,array $c):int{ }
2、毛病非常
try/catch
3、zval运用栈内存
勤俭了内存分派 php5 zval*val;make_std_zval(val); php7 zval val;
引荐教程:PHP视频教程
以上就是php用哪一个版本的细致内容,更多请关注ki4网别的相干文章!