Selain itu, nama-nama berikut tidak boleh digunakan. Meskipun mereka tidak akan menghasilkan kesalahan dalam PHP 7. 0, mereka dicadangkan untuk penggunaan masa depan dan harus dianggap usang
Tag ASP dan skrip PHP dihapus
Dukungan untuk menggunakan ASP dan tag skrip untuk membatasi kode PHP telah dihapus. Tag yang terpengaruh adalah
Removed ASP and script tagsOpening tagClosing tag<%%><%=%>Panggilan dari konteks yang tidak kompatibel dihapus
, panggilan statis yang dilakukan ke metode non-statis dengan konteks yang tidak kompatibel sekarang akan menghasilkan metode yang dipanggil memiliki variabel $this yang tidak terdefinisi dan peringatan penghentian dikeluarkan
class A {
public function test() { var_dump($this); }
}
Parse error: syntax error, unexpected 'new' (T_NEW) in /tmp/test.php on line 3 0
Parse error: syntax error, unexpected 'new' (T_NEW) in /tmp/test.php on line 3 _1
Output dari contoh di atas dalam PHP 5. 6
Deprecated: Non-static method A::test() should not be called statically, assuming $this from incompatible context in /tmp/test.php on line 8 object(B)#1 (0) { }
Output dari contoh di atas dalam PHP 7
Deprecated: Non-static method A::test() should not be called statically in /tmp/test.php on line 8 Notice: Undefined variable: this in /tmp/test.php on line 3 NULL
sekarang menjadi operator asosiatif kanan
Konstruk tidak lagi memerlukan tanda kurung, dan telah diubah menjadi operator asosiatif kanan dengan prioritas antara print dan =>. Hal ini dapat mengakibatkan perubahan perilaku
Parse error: syntax error, unexpected 'new' (T_NEW) in /tmp/test.php on line 3 _2
Parse error: syntax error, unexpected 'new' (T_NEW) in /tmp/test.php on line 3 _3
Tanda kurung dapat digunakan untuk memperjelas kasus tersebut
Fungsi tidak boleh memiliki banyak parameter dengan nama yang sama
Tidak mungkin lagi mendefinisikan dua atau lebih parameter fungsi dengan nama yang sama. Misalnya, fungsi berikut akan memicu Parse error: syntax error, unexpected 'new' (T_NEW) in /tmp/test.php on line 3 4
Parse error: syntax error, unexpected 'new' (T_NEW) in /tmp/test.php on line 3 5
Fungsi yang memeriksa argumen melaporkan nilai parameter saat ini
func_get_arg(), func_get_args(), debug_backtrace() dan pengecualian backtrace tidak akan lagi melaporkan nilai asli yang diteruskan ke parameter, tetapi sebaliknya akan memberikan nilai saat ini (yang mungkin telah dimodifikasi)
Parse error: syntax error, unexpected 'new' (T_NEW) in /tmp/test.php on line 3 _6
Output dari contoh di atas dalam PHP 5
Output dari contoh di atas dalam PHP 7
Beralih pernyataan tidak dapat memiliki beberapa blok default
Tidak mungkin lagi mendefinisikan dua atau lebih blok default dalam pernyataan switch. Misalnya, pernyataan sakelar berikut akan memicu Parse error: syntax error, unexpected 'new' (T_NEW) in /tmp/test.php on line 3 4
Parse error: syntax error, unexpected 'new' (T_NEW) in /tmp/test.php on line 3 _8
$HTTP_RAW_POST_DATA dihapus
$HTTP_RAW_POST_DATA tidak lagi tersedia. Aliran harus digunakan sebagai gantinya
Ekstensi JSON diganti dengan JSOND
Ekstensi JSON telah diganti dengan JSOND, menyebabkan tiga jeda BC minor. Pertama, angka tidak boleh diakhiri dengan titik desimal (mis. e. 34. harus diubah menjadi 34. 0 atau 34). Kedua, saat menggunakan notasi ilmiah, eksponen e tidak boleh langsung mengikuti titik desimal (mis. e. 3. e3 harus diubah menjadi 3. 0e3 atau 3e3). Terakhir, string kosong tidak lagi dianggap sebagai JSON yang valid
Kegagalan fungsi internal saat luapan
Sebelumnya, fungsi internal akan secara diam-diam memotong angka yang dihasilkan dari paksaan float-to-integer ketika float terlalu besar untuk direpresentasikan sebagai integer. Sekarang, E_WARNING akan dipancarkan dan Parse error: syntax error, unexpected 'new' (T_NEW) in /tmp/test.php on line 3 9 akan dikembalikan
Perbaikan pada nilai pengembalian penangan sesi khusus
Fungsi predikat apa pun yang diterapkan oleh penangan sesi khusus yang mengembalikan Deprecated: Non-static method A::test() should not be called statically, assuming $this from incompatible context in /tmp/test.php on line 8 object(B)#1 (0) { } 0 atau -1 akan menjadi kesalahan fatal. Jika ada nilai dari fungsi ini selain boolean, -1, atau 0 dikembalikan, maka akan gagal dan E_WARNING akan dipancarkan
Urutkan urutan elemen yang sama
Algoritme pengurutan internal telah ditingkatkan, yang mungkin menghasilkan urutan elemen yang berbeda, yang dibandingkan dengan yang sama, dari sebelumnya
Catatan
Jangan mengandalkan urutan elemen yang sebanding;
Pernyataan break dan switch yang salah tempat
pernyataan break dan continue di luar loop atau struktur kontrol switch sekarang terdeteksi pada waktu kompilasi alih-alih run-time seperti sebelumnya, dan memicu Parse error: syntax error, unexpected 'new' (T_NEW) in /tmp/test.php on line 3 4
Mhash bukan perpanjangan lagi
Ekstensi Mhash telah terintegrasi penuh ke dalam ekstensi Hash. Oleh karena itu, tidak mungkin lagi mendeteksi dukungan Mhash dengan extension_loaded(); . Selain itu, Mhash tidak lagi dilaporkan oleh get_loaded_extensions() dan fitur terkait