今天上官網 www.php.net 看到 5.3 Alpha1 釋出
按照官網提供的新特性
- Namespaces (documentation maybe out dated)
- Late static binding and __callStatic
- Lambda functions and closures
- Addition of the intl, phar (phar is scheduled for some more work a head of alpha2), fileinfo and sqlite3 extensions
- Optional cyclic garbage collection
- Optional support for the MySQLnd replacement driver for libmysql
- Windows older than Windows 2000 (Windows 98, NT4, etc.) are not supported anymore (details)
- New syntax features like NOWDOC, limited GOTO, ternary short cut "?:"
其中 NameSpaces 支援是不錯的 , 現在已經有很多所謂 MVC 的 FrameWork , 類別之多眼花撩亂 , 但是大家都用自己的一套名稱命名方式 , 但都無法解決一個問題 , 就是類別名稱漏漏長 ..... 有了 NameSpaces 之後 , 就不用去 new 一個漏漏長的物件名稱了 .... 看起來也舒服些 !
Lamba ... 不知道怎麼念才比較文雅 , 我看了文件也還一知半解 , 看起來似乎可以把變數當函數使用 , 而這個變數可能可以代表某函數, 或某物件的method .... 有點像 javascript ... . 應該是吧 哈哈....我是這麼猜想的 .... 不知道這個特性會不會流行起來就是了 !
PHP 5.3 也開始支援類似 Java 的 JAR 功能 , 可以把 PHP 寫成的套件包成一個 PHP Archive 壓縮檔然後來使用 , 這個功能會不會流行我是不知道 , 似乎現在也沒有迫切的需求 , 但其實這種功能早就可以可以利用 stream register 功能就可以做到類似的功能 , 而 PHP 5.3 直接寫成原生的壓縮解壓縮 , 效能會比較好吧 , 也比較統一 , 以後應該會出現很多 *.phar 的套件讓大家下載來用吧 哈哈 ... 等 5.3 真正流行再說 !!
上述的新特性都會對於日後寫 PHP Code 的語法上有改變 , 所以是必須清楚的
至於其他的新增功能我想對於寫 PHP 的語法上不會有大改變 , 所以就不多加介紹了
但 5.3 就只增加上述那麼一點特性嗎 ????
其實官方網站有提供一個 release plan 連結 , 可以看到 Alpha2 版本還會去支援 large file , 不知道我有沒有看錯 , 其實現在的 32bits PHP 只能支援到 2G (這我測試過) , 但我不知道 64bits 上的 PHP 能不能支援超過 2G , 所以也不知道這是代表也要讓 32bits PHP 支援超過 2G 的大小還是 64bits ....
至於 5.3 有很多新特性是不是要馬上學會 ? 我想學都是要學的 , 雖然實際上各 Linux 套件只支援到 5.2 , 甚至 RHEL 5 及 CentOS 5 還停留在 5.1.6 , 但 PHP 就是演進的很快速 , 學無止盡啊 ...