php5.0
使用了Zend 2 引擎。
增加完善的面向對象模型
增加了新關鍵字,包括this,try,catch,public,private,protected等
改變strrpos() 和 strripos()使用整個字符串作為 needle。
改變array_merge() 只接受數組
改變非法使用字符串偏移量會導致 E_ERROR 而不是 E_WARNING
改變get_class(),get_parent_class()和get_class_methods() 返回的類/方法名和定義時的名字一致(區(qū)分大小寫)
改變ip2long() 在傳遞入一個非法 IP 作為參數時返回 FALSE,不再是 -1。
改變函數定義在包含文件中,則這些函數可以在主文件中使用而與是否在 return 指令之前還是之后無關
改變include_once 和 require_once 在 Windows 下路徑規(guī)格化,因此包含 A.php 和 a.php 只會把文件包含一次。
php 5.1
重寫了數據處理部分的代碼
PDO擴展默認啟動
性能優(yōu)化
超過30個新函數
超過400個bug修復
php5.2
CLI SAPI不再從php.ini和php-cli.ini中獲取當前目錄信息。這是從安全角度考慮的。
增加json支持
對0取模的時候會提示Warning信息。
對象可以通過__toString()函數被當做字符串調用。
禁止設置抽象類的靜態(tài)方法
增加RFC(data:stream)的支持。
php5.3
不再支持ISAPI
增加了命名空間的支持.
增加了延遲靜態(tài)綁定支持.
增加了閉包及匿名函數支持。
增加了循環(huán)引用的垃圾回收器并且默認是開啟的.
增加允許動態(tài)訪問靜態(tài)方法。
增加了 Nowdoc 語法支持, 類似于 Heredoc 語法, 但是包含單引號.就是
增加了兩個魔術方法, __callStatic 和 __invoke.
增加魔法常量 __DIR__ 來解決路徑問題
改變__toString 魔術方法不再接受參數
改變魔術方法 get, set, isset, unset, and __call 應該總是公共的(public)且不能是靜態(tài)的(static). 方法簽名是必須的.
改變__call 魔術方法在訪問私有的(private)和被保護的(protected)方法時被調用.
改變realpath() 現(xiàn)在是完全與平臺無關的. 結果是非法的相對路徑比如 FILE . "/../x" 將不會工作.
call_user_func() 系列函數即使被調用者是一個父類也使用 $this.
改變數組函數 natsort(), natcasesort(), usort(), uasort(), uksort(), array_flip(), 和 array_unique() 將不再接受對象作為參數
改變include(require)_once 解決重復打開的問題,整體性能提高了 5%-15%
改變md5() 大概提高了 10%-15% 的性能,更好的內存處理機制,提高軟件性能的訪問。
改變函數內 include 或者 require 一個文件時,文件內 將不能使用 func_get_arg(), func_get_args() 和 func_num_args() 函數
改變HTTP 流包裹器將從 200 到 399 全部的狀態(tài)碼都視為成功
改變異??梢员粌惹?/p>
改變三元操作符簡寫echo $a ? $a : "No Value"==$a ?: "No Value";
改變使用雙引號聲明 Heredoc, 補充了 Nowdoc 語法.
改變可在類外部使用 const 關鍵詞聲明 常量.
php5.4
不再支持 安全模式 。任何依賴安全模式的應用在安全方面都需要進行調整。
增加支持 traits 。
增加短數組語法,比如 a=[1,2,3,4];或a = ['one' => 1, 'two' => 2, 'three' => 3, 'four' => 4]; 。
增加支持對函數返回數組的成員訪問解析,例如 foo()[0] 。
增加 閉包 支持 $this 。
增加不管是否設置 short_open_tag php.ini 選項,
增加在實例化時訪問類成員,例如: (new Foo)->bar() 。
增加支持 Class::{expr}() 語法。
增加二進制直接量,例如:0b001001101
增加內置用于開發(fā)的 CLI 模式的 web server 。
增加SESSION 擴展現(xiàn)在能追蹤文件的 上傳進度
改變移除魔術引號 。為避免出現(xiàn)安全問題,依賴此特性的應用可能需要升級。?
改變get_magic_quotes_gpc() 和 get_magic_quotes_runtime() 現(xiàn)在總是返回 FALSE 。?
改變php.ini 指令register_globals 和 register_long_arrays 被移除。
改變調用時的引用傳遞 被移除。就是不能有f(&$a)這樣的形式
改變break 和 continue 語句不再接受可變參數
改變在日期與時間擴展 中,不再支持時區(qū)使用 TZ(TimeZone)環(huán)境變量設置,必須使用 date.timezone php.ini 配置選項或 date_default_timezone_set()
改變數組轉換成字符串將產生一條 E_NOTICE 級別的錯誤
改變NULL 、FALSE 、或 一個空字符串被添加成一個對象的屬性時將發(fā)出一條 E_WARNING 級別的錯誤
改變參數名使用全局變量將會導致一個致命錯誤
改變Salsa10 和 Salsa20 哈希算法 被移除
改變當使用兩個空數組作為參數時,array_combine() 現(xiàn)在返回 array() 而不是 FALSE
改變htmlentities() 將像 htmlspecialchars() 一樣處理亞洲字符集
改變不要再使用 eregi() ,此特性在最新版本中被移除
改變非數字的字符串偏移量,比如 a[′foo′]此處a 是一個字符串,現(xiàn)在使用 isset() 時返回 false,使用 empty() 時返回 true,
改變解析錯誤信息和不兼容參數的警告
php5.5
已放棄對 Windows XP 和 2003 的支持。需要 Windows Vista 或更新的系統(tǒng)。
增加 Generators,包括yield關鍵字
增加 finally 關鍵字
增加了代碼的opcache緩存
改變pack() 和 unpack()函數
改變移除 PHP logo GUIDs
改變foreach 現(xiàn)在支持 list()
改變empty() 支持傳入一個任意表達式,而不僅是一個變量
改變非變量array和string也能支持下標獲取了
改變類名通過::class可以獲取
php5.6
增加可變參數函數的支持,不再依賴func_get_args()函數,現(xiàn)在可以通過新增的操作符(...)可以把數組或者可遍歷對象解包到參數列表
增加一個交互式調試器phpdbg
改變const 允許使用包含數字、字符串字面值和常量的標量表達式
改變GMP 對象支持操作符重載和轉換為標量
改變采用CryptoPro S-box tables實現(xiàn)了 gost-crypto 哈希算法
改變OpenSSL擴展新增證書指紋的提取和驗證功能,
改變use 操作符開始支持函數和常量的導入 use function 和 use const文章來源:http://www.zghlxwxcb.cn/news/detail-824501.html
改變php://input 開始支持多次打開和讀取,這給處理POST數據的模塊的內存占用帶來了極大的改善。文章來源地址http://www.zghlxwxcb.cn/news/detail-824501.html
到了這里,關于php5.0到5.6的新特性,開發(fā)時應注意版本的兼容性的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!