Adalah php 7.4 kompatibel ke belakang

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

Apakah PHP7. 4 masih didukung?

Biasanya, setiap versi utama PHP (7. 3, 7. 4, 8. 0, dll) menerima dukungan aktif selama dua tahun, diikuti dengan dukungan keamanan selama satu tahun. PHP7. 4 menikmati dukungan aktif dari 2019 hingga akhir 2021 . PHP 7. 4 satu tahun dukungan keamanan berakhir hari ini.

Apakah PHP7. 4 tidak digunakan lagi?

Tanggal akhir masa pakai PHP 7. 4 adalah 28 November 2022 .

Apakah versi PHP kompatibel mundur?

php tidak memiliki kompatibilitas mundur di semua versi . Itu sering menghapus beberapa fungsi ketika mengubah versi. Masalah terjadi ketika Anda harus memutakhirkan server dan perlu mengubah versi php tetapi beberapa skrip php tidak lagi berfungsi dengan versi php yang baru. Anda juga harus memperbaiki skrip php yang merupakan pekerjaan yang lebih besar.

Apakah PHP7. 4 stabil?

PHP 7. 4 adalah versi stabil terbaru dari PHP .