PHP各個(gè)版本之間的區(qū)別
一、PHP 5.2、5.3、5.4、5.5、5.6 版本區(qū)別對(duì)比以及新功能詳解
PHP5.2 以前:autoload, PDO 和 MySQLi, 類型約束
PHP5.2:JSON 支持
PHP5.3:棄用的功能,匿名函數(shù),新增魔術(shù)方法,命名空間,后期靜態(tài)綁定,Heredoc 和 Nowdoc, const, 三元運(yùn)算符,Phar
PHP5.4:Short Open Tag, 數(shù)組簡(jiǎn)寫形式,Traits, 內(nèi)置 Web 服務(wù)器,細(xì)節(jié)修改
PHP5.5:yield, list() 用于 foreach, 細(xì)節(jié)修改
PHP5.6: 常量增強(qiáng),可變函數(shù)參數(shù),命名空間增強(qiáng)
1.php5.2以前
1.1 autoload的使用
當(dāng)在代碼中使用一個(gè)未定義的類的時(shí)候,該函數(shù)就會(huì)被調(diào)用,現(xiàn)在已經(jīng)不再使用了,因?yàn)橐粋€(gè)項(xiàng)目中只能有一個(gè)__autoload();現(xiàn)在使用spl_autoload_register();
1.2 PDO和MiSQLi的使用
1.3 類型約束。
通過(guò)類型約束可以限制參數(shù)的類型,不過(guò)這個(gè)機(jī)制不完善。
2. php5.2
2.1 JSON的支持
增加了json_encode(),json_decode()等函數(shù)
3.php5.3
PHP5.3 算是一個(gè)非常大的更新,新增了大量新特征,同時(shí)也做了一些不向下兼容的修改
3.1 棄用的功能
3.2 匿名函數(shù)
$func=function($arg){ echo $arg; } $func('hello');
3.2 新增了魔術(shù)方法 __invoke(),__callStatic();
隨著匿名函數(shù)的加入,PHP 引入了一個(gè)新的魔術(shù)方法 __invoke(). 該魔術(shù)方法會(huì)在將一個(gè)對(duì)象作為函數(shù)調(diào)用時(shí)被調(diào)用: class A { public function __invoke($str) { print "A::__invoke(): {$str}"; } } $a = new A; $a("Hello World");
3.3命名空間
<?php // 命名空間的分隔符是反斜杠,該聲明語(yǔ)句必須在文件第一行。 // 命名空間中可以包含任意代碼,但只有 **類, 函數(shù), 常量** 受命名空間影響。 namespace XXOO\Test; // 該類的完整限定名是 \XXOO\Test\A , 其中第一個(gè)反斜杠表示全局命名空間。 class A{} // 你還可以在已經(jīng)文件中定義第二個(gè)命名空間,接下來(lái)的代碼將都位于 \Other\Test2 . namespace Other\Test2; // 實(shí)例化來(lái)自其他命名空間的對(duì)象: $a = new \XXOO\Test\A; class B{} // 你還可以用花括號(hào)定義第三個(gè)命名空間 namespace Other { // 實(shí)例化來(lái)自子命名空間的對(duì)象: $b = new Test2\B; // 導(dǎo)入來(lái)自其他命名空間的名稱,并重命名, // 注意只能導(dǎo)入類,不能用于函數(shù)和常量。 use \XXOO\Test\A as ClassA }
3.4后期靜態(tài)綁定
#self 的語(yǔ)義本來(lái)就是“當(dāng)前類” 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、錯(cuò)誤異常
try/catch
3、zval使用棧內(nèi)存
節(jié)約了內(nèi)存分配 php5 zval*val;make_std_zval(val); php7 zval val;
推薦教程:PHP視頻教程
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com