當前位置: 首頁 >> 新聞中心
新聞中心
php5.3 升級到 php5.4 不向后兼容的變更

 盡管大部分現有的 PHP 5 代碼不需要任何改變就可以正常運行,但請注意一些不向后兼容的變更: 

?  不再支持 安全模式 。任何依賴安全模式的應用在安全方面都需要進行調整。  

?  移除 魔術引號 。為避免出現安全問題,依賴此特性的應用可能需要升級。  get_magic_quotes_gpc() 和 get_magic_quotes_runtime() 現在總是返回 FALSE 。 調用 set_magic_quotes_runtime() 將產生一個 E_CORE_ERROR 級別的錯誤。  

? register_globals 和 register_long_arrays php.ini 指令被移除。  

? 調用時的引用傳遞 被移除。  

? break 和 continue 語句不再接受可變參數( 比如: break 1 + foo() * $bar; )。像類似 break 2; 這樣的固定參數仍可使用。受此變化影響,不再允許出現 break 0; 和 continue 0; 。  

?  在 日期與時間擴展 中,不再支持時區使用 TZ(TimeZone)環境變量設置。必須使用 date.timezone php.ini 配置選項或 date_default_timezone_set() 函數來指定時區。PHP 將不再嘗試猜測時區,而是回退到“UTC”并發出一條 E_WARNING 錯誤。  

?  非數字的字符串偏移量,比如 $a['foo'] 此處 $a 是一個字符串,現在使用 isset() 時返回 false,使用 empty() 時返回 true,并產生一條 E_WARNING 錯誤。偏移量類型是布爾和 null 則產生一條 E_NOTICE 錯誤。 數字字符串(比如 $a['2'] )仍像以前一樣運行。注意像類似 '12.3' 和 '5 foobar' 這樣的偏移量將被視為非數字并產生一條 E_WARNING 錯誤,但因為向后兼容的原因它們會被分別轉換成 12 和 5 。   注意:下列代碼返回不同的結果。  $str='abc';var_dump(isset($str['x'])); // 在 PHP 5.4 或更新版本返回 false,但在 PHP 5.3 或更低版本返回 true  

? 數組轉換成字符串將產生一條 E_NOTICE 級別的錯誤,但返回的結果仍是字符串 "Array" 。  

? NULL 、FALSE 、或 一個空字符串被添加成一個對象的屬性時將發出一條 E_WARNING 級別的錯誤,而不是 E_STRICT 。  

?  現在參數名使用全局變量將會導致一個致命錯誤。禁止類似 function foo($_GET, $_POST)


官方地址: http://php.net/manual/zh/migration54.incompatible.php


 

備案專員

  • 點擊這里給我發消息
  • QQ:537030080
  • 021-64812318 轉 15

域名專員

  • 點擊這里給我發消息
  • QQ:2355216373
  • 4009-021-686轉3

售后支持

咨詢電話

辽宁35选7开奖结果