Becoming PHP 6 Compatible

2007-09-25 17:06

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 下載 ~


PHP 類別的文章 :
  

新增留言

*

*

訂閱這則留言的 RSS Feed


各分類文章

最近的 20 篇文章