PHP7棄用功能


核心:

  • PHP4風格的建構子將會被棄用。 (和類別名稱同名的方法視為建構方法,這是PHP4的語法。)
  • 靜態呼叫非靜態方法將被棄用。

OpenSSL

capture_session_meta選項將被棄用,可以呼叫stream_get_meta_data()來取得。


PHP4 風格的建構子

#在PHP4 中類別的函數可以與類別名稱同名,這一特性在PHP7中被廢棄,同時會發出一個E_DEPRECATED 錯誤。當方法名稱與類別名稱相同,且類別不在命名空間中,同時PHP5的建構子(__construct)不存在時,會產生一個 E_DEPRECATED 錯誤。

實例

<?php
class A {
   function A() {
      print('Style Constructor');
   }
}
?>

以上程式執行輸出結果為:

Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; A has a deprecated constructor in...

以靜態的方式呼叫非靜態方法

以靜態的方式呼叫非靜態方法,不再支援:

##實例 #

<?php
class A {
   function b() {
      print('Non-static call');
   }
}
A::b();
?>

以上程式執行輸出結果為:

Deprecated: Non-static method A::b() should not be called statically in...Non-static call


#password_hash() 隨機因子選項

函數原salt 量不再需要由開發者提供了。函數內部預設帶有 salt 能力,無需開發者提供 salt 值。


capture_session_meta SSL 上下文選項

已廢棄了 "capture_session_meta" SSL 上下文選項。在串流資源上活動的加密相關的元資料可以透過 stream_get_meta_data() 的回傳值來存取。


#