Becoming PHP 6 Compatible
php 官方網站宣佈 PHP 4 將於 2007/12/31 停止發展後
一併說明了 PHP 6 正在開發了
在 gslin 那看到了 『現在寫 PHP6-compatible 的一些技巧』
稍微翻了一些資料, 大概看到幾點 PHP6 比較大的變化
從這些調整也可以知道 如果自己現在開發的程式希望相容於 PHP6 , 應該怎麼修正 ..
以下紅色文字表示較有可能影響一般 programmer 的項目 .
藍色文字表示較有可能影響 OO programmer 的項目 .
.Unicode 的支援 -
讓多數的 functions 支援處理 unicode
.register globals 將被移除 -
這早就該做了啊 XDDD
趕快改掉不良的習慣吧 !!
.magic quotes 將被移除 -
這一點會對安全有比較大的影響
畢竟有很多其實存在 sql injection 弱點的 AP,
裡面並沒有妥善處理傳入參數 ,
但因 php5 預設開啟 magic quotes, 提升注入難度而逃過一劫
所以當 PHP6 沒有 mq 後, 就有可能被 ....
不過這也代表要程式設計師養成良好習慣, 自己做好處理 !
.var to alias public -
PHP6 當然也算是 OO 語言,
在 class 裡使用 var 的話, 會相當於使用 public ..
似乎是為了相容 PHP5 ..
.return by reference will error -
為了更像一個 OO 語言, 往後初始化一個新的物件時將不允許冠上 reference operator
例如以下兩個例子
$a = & new object(); // ╳
$a = new object(); // ○
.zend.ze1 compatibility mode 將被移除 -
這個我不知道是啥 XD ..
只知道是和舊解析引擎的相容模式將要丟掉了 ~
.Freetype 1 and GD 1 support 將被移除 -
鼓勵大家用 Freetype 2 和 GD 2 吧 ~
.dl() moves to SAPI
我也不知道這個是啥, 總之就是把 dl() 函數移進 SAPI
.register long array 將被移除 -
是指像 $HTTP_GET_VARS、$HTTP_POST_VARS ... 這類 long predefined array
PHP5 預設就開始關閉了 (register_long_arrays = Off)
而到 PHP6 將會正式丟掉 ~
請改使用 $_SERVER、$_GET、$_POST、$_COOKIE、$_FILES ... etc
.一些 Extension 的變更 -
例如 XMLReader 和 XMLWriter 將不再是以 Extension 的方式出現,
而會直接移進 PHP 的核心中,
而 ereg extension 將移出核心, 改放入 PECL
這是為了建議大家使用 preg_* 而非 ereg_*
.APC 將被導入核心 -
全名為 Alternative PHP Cache ,
一個用以 cache/optimize php 的 framework ,
本存在於 PECL 中, 自 PHP6 起將移入核心, 可由設定選擇是否開啟
.告別 ASP 風格的標籤 -
不再為了取悅 ASP 開發者而相容 <% %> 這樣的 tag 了 ~
(其實我對 PHP 也不熟, 以上說明得不好的地方 就多包涵啦 XDD)
參考來源 -
gslin - 現在寫 PHP6-compatible 的一些技巧
Becoming PHP 6 Compatible
Prepare for PHP 6
PHP6的二、三事
而想嚐鮮 PHP 6 的人, 可以到 http://snaps.php.net 下載 ~
新增留言 2007-09-25 17:06