您好,登錄后才能下訂單哦!
小編給大家分享一下php5.2和5.3有哪些區別,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
php5.2和5.3的區別有:1、php5.3棄用了Register Globals、Magic Quotes等功能;2、新增了魔術方法__invoke()、__callStatic();3、支持用const定義常量。
本文操作環境:windows10系統、php 5.2&&php 5.3、thinkpad t480電腦。
很多小伙伴可能不太了解php 5.2和php 5.3之間有什么區別。下面我們就來具體介紹下這兩個版本之間有什么區別,具體的區別在哪里,一起來看下吧。
我們先來看下php 5.2這個版本。
php5.2(2006-2011)
JSON的支持 增加了json_encode(),json_decode()等函數
接著我們來看下php 5.3這個版本。
php5.3(2009-2012)
PHP5.3 算是一個非常大的更新,新增了大量新特征,同時也做了一些不向下兼容的修改,一起來看下。
1.棄用的功能
以下幾個功能被棄用,若在配置文件中啟用,則 PHP 會在運行時發出警告。
Register Globals Magic Quotes Safe Mode
2.匿名函數
f u n c = f u n c t i o n ( func=function(func=function(arg){ echo $arg; } $func(‘hello’);
3.新增了魔術方法 __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() 則會在調用一個不存在的靜態方法時被調用。
4.命名空間,但不完善,只支持類
5.后期靜態綁定
6.Heredoc 和 Nowdoc
對 Heredoc 以及 Nowdoc 進行了一些改進,它們都用于在 PHP 代碼中嵌入大段字符串。
7.用 const 定義常量
PHP5.3 起同時支持在全局命名空間和類中使用 const 定義常量。
舊式風格: define("XOOO", "Value"); 新式風格: const XXOO = "Value"; const 形式僅適用于常量,不適用于運行時才能求值的表達式: // 正確 const XXOO = 1234; // 錯誤 const XXOO = 2 * 617; (在5.6版后可以了)
8.三元運算符簡寫形式
舊式風格:
echo $a ? $a : “No Value”;
可簡寫成:
echo $a ?: “No Value”;
即如果省略三元運算符的第二個部分,會默認用第一個部分代替。
9.Phar
Phar即PHP Archive, 起初只是Pear中的一個庫而已,后來在PHP5.3被重新編寫成C擴展并內置到 PHP 中。
Phar用來將多個 .php 腳本打包(也可以打包其他文件)成一個 .phar 的壓縮文件(通常是ZIP格式)。
目的在于模仿 Java 的 .jar, 不對,目的是為了讓發布PHP應用程序更加方便。同時還提供了數字簽名驗證等功能。
.phar 文件可以像 .php 文件一樣,被PHP引擎解釋執行,同時你還可以寫出這樣的代碼來包含(require) .phar 中的代碼:
require(“xxoo.phar”); require(“phar://xxoo.phar/xo/ox.php”);
以上是“php5.2和5.3有哪些區別”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。