5 fitur baru dalam php 7

5 fitur baru dalam php 7

Penulis Bio

Studi kasus ini adalah posting tamu yang ditulis oleh Kaira Clark Works di XICOM Technologies Ltd - Perusahaan Pengembangan Aplikasi Web CakePHP. Dia selalu senang berbagi hasratnya untuk pemasaran dan pengembangan web. Jika Anda berencana untuk menyewa tim yang berdedikasi untuk kehadiran online yang brilian, dia adalah satu -satunya untuk Anda.

5 fitur baru dalam php 7

Semua hal yang dipertimbangkan, 2015 telah menjadi tahun yang penting bagi setiap desainer PHP, dan setelah sebelas tahun, adaptasi PHP menjadi 5.0 rilis, ada perkembangan lain yang, dalam jangka panjang, datang. Namun, pertimbangkan berbagai sorotan pengembangan, pikirkan tentang metode apa varian php Anda akan mempengaruhi basis kode php Anda saat ini? Cukup evaluasi apa yang benar -benar telah berubah dalam PHP? Seberapa aman Anda bisa menangani desain ulang php? Di sini, dalam posting ini, Anda akan mendapatkan setiap solusi untuk pertanyaan Anda dan pada akhirnya akan mengalami apa yang akan Anda lakukan saat Anda bekerja dengan PHP 7. Jadi, mari kita datang ke jantung masalah pemeriksaan sekarang.

Perbaikan Eksekusi

Peningkatan eksekusi kemungkinan besar merupakan salah satu motivasi utama di antara pengembang tentang mengapa semua orang harus memiliki laporan di setiap server ketika ada kedatangan varian stabil PHP dirilis. Refaktor pusat yang disajikan oleh telepon RFC membuat PHP 7 lebih cepat dari HHVM. Tolok ukur resmi patut diperhatikan: sebagian besar aplikasi normal yang berjalan di PHP 5.6 akan terus mengeksekusi di setiap acara dua kali lebih cepat pada php 7.

Jebakan kompatibilitas ke belakang

Sekarang, mari kita melakukan percakapan tentang beberapa faktor PHP penting yang pada akhirnya dapat memecah aplikasi warisan yang berjalan pada versi PHP yang lebih lama.

  • Sintaks variabel seragam

Memecahkan serangkaian setiap ketidakkonsistenan pada saat mengevaluasi ekspresi variabel variabel. Pertimbangkan kode di bawah ini yang ditunjukkan:

 Perusahaan kelas public $ emp_name = 'madhur; publik $ emp_des = 'Engineer Perangkat Lunak';  $ company = perusahaan baru (); $ properti = ['pertama' => 'emp_name', 'kedua' => 'info']; echo "Nama Nemployee" . $ Company-> $ properti ['pertama'] . "nn"; 

Dalam PHP 7, Expression $ Company-> $ Property ['First'] dievaluasi sebagai $ Company-> $ properti ['pertama']. Interpreter akan mengevaluasi $ perusahaan-> $ properti terlebih dahulu.

Berkat sintaks variabel kiri-kanan seragam baru kami yang membuat setiap ekspresi valid yang tidak mungkin terjadi pada versi PHP awal. Pertimbangkan kelas berikut untuk pemahaman yang lebih baik:

 Class Company public static $ location = 'ncr'; fungsi publik getBranches () return ['jaipur' => function () return "east and west;, 'chandigarh' => function () return 'utara dan selatan';]; fungsi publik getBranchesof ($ seseorang) return $ this-> getBranches () [$ seseorang]; fungsi statis publik getNewCompany () return new company (); 

PHP 7 memungkinkan untuk membuat asosiasi bersarang dengan kombinasi yang berbeda antara operator:

$ company = perusahaan baru (); echo "n" . $ company-> getBranches () ['jaipur'] () . "nn"; echo "n" . $ company-> getBranchesof ('chandigarh') () . "nn"; 

Cuplikan kode ini akan menghasilkan kesalahan parse pada PHP 5, tetapi cocok dengan PHP 7.

Bekerja dengan kesalahan fatal dengan beberapa klausa "default"

Ini, sekali lagi kasus kontroversial yang berkaitan dengan kesalahan yang lebih logis. Itu tidak menggunakan beberapa klausa default dalam sakelar hanya karena tidak pernah terjadi peringatan kesalahan. Dalam PHP 7 Anda akan menemukan kesalahan fatal: “Pernyataan sakelar hanya berisi satu klausa default”.

Pengecualian Mesin dalam PHP

Pengecualian mesin berfungsi sebagai prosedur penanganan kesalahan dalam aplikasi. Jadi, semua kesalahan fatal fatal dan dapat dipulihkan Anda yang ada digantikan secara efisien oleh pengecualian, untuk dengan mudah menangkap semua kesalahan tersebut dan mengambil tindakan terhadap untuk menangani kesalahan tersebut.

Mari kita merujuk pada kode di bawah ini tentang cara menangani implementasi pengecualian mesin agar tetap mudah kompatibilitas:

 set_error_handler (fungsi ($ code, $ message) echo "error $ code:" . $ pesan . "nn"; ); fungsi a (arrayObject $ b) return $ b;  sebuah tes"); echo "halo dunia"; 

Kode ini secara efektif memulihkan kesalahan yang disebabkan oleh ketidakcocokan tipe saat Anda memanggil fungsi a () dengan bantuan string sebagai parameter.

Halo Dunia

Eksekusi ini akan berlanjut karena kesalahan ditangani secara efisien. Dalam PHP 7, itu akan menghasilkan pengecualian TypeError yang bukan kesalahan. Jadi dalam hal ini, penangan kesalahan khusus tidak akan dipanggil, dan ini adalah output di bawah ini yang akan Anda temui:


Kesalahan Fatal: TipeError Tak Terbaik: Argumen 1 diteruskan ke A () harus menjadi contoh arrayObject, string yang diberikan, disebut in/vagrant/test/test04.PHP pada baris 12 dan didefinisikan dalam/vagrant/tes/test04.PHP: 7
Jejak Tumpukan:
#0/vagrant/tes/test04.PHP (12): a ('tes')
#1 main
dilemparkan di/vagrant/tes/test04.PHP pada baris 7

Di sini eksekusi akan berhenti karena pengecualian tidak ditangkap. Untuk mengatasi masalah ini, seseorang harus menemukan pengecualian dengan memanfaatkan blok mencoba/menangkap. Perhatikan bahwa hierarki pengecualian akan berubah untuk mengakomodasi pengecualian mesin baru dengan kode warisan minimal. Lihat pola berikut di bawah ini:

  • Antarmuka yang bisa dilempar
    • Pengecualian mengimplementasikan yang bisa dilemparkan
      • ErrorException memperluas pengecualian
      • RuntimeException memperluas pengecualian
    • Kesalahan mengimplementasikan yang bisa dilemparkan
      • TypeError memperluas kesalahan
      • ParseError memperluas kesalahan
      • AssertionError memperluas kesalahan

Pola di atas menandakan bahwa pengecualian tangkapan-semua baru sekarang dapat dilempar alih-alih pengecualian.

Fitur bahasa yang baru ditambahkan

Mari kita lihat apa itu termasuk?
Operator baru

1. -> Operator Spaceship/ Perbandingan
Operator pesawat ruang angkasa dilambangkan sebagai, juga dikenal dengan nama operator perbandingan gabungan yang digunakan untuk mengaktifkan perbandingan rantai.

Itu memiliki ekspresi berikut:
$ A $ B

1. Ekspresi mengevaluasi ke -1 jika $ A lebih kecil dari $ B
2. 0 Jika $ A sama dengan $ b
3. 1 Jika $ A lebih besar dari $ B.

Secara keseluruhan dapat digunakan sebagai ekspresi berikut:

($ A $ B) ? 1: 0)

2 -> Operator Null Coalesce dilambangkan sebagai ?? Itu membuat cek apakah nilai diatur untuk menggunakannya.

Petunjuk tipe skalar

Petunjuk tipe skalar datang sebagai salah satu atribut paling terkenal yang termasuk dalam bahasa PHP yang memanfaatkan bilangan bulat, pelampung, string, dan simbol boolean sebagai petunjuk jenis untuk bekerja dengan fungsi dan metode. Petunjuk tipe skalar tidak membatasi secara default yang menandakan bahwa ketika Anda memberikan nilai float ke integer, parameter, itu hanya akan menekannya untuk memicu format tanpa peringatan kesalahan apapun.

Jadi, untuk mengatasi masalah ini, penting untuk memungkinkan mode ketat yang akan melempar kesalahan ketika jenis skalar ilegal dilewatkan sebagai argumen. Mari kita merujuk pada kode yang dihasilkan di bawah ini:

 function double (int $ value) return 2 * $ value;  $ a = double ("5"); var_dump ($ a); 

Untuk memastikan bahwa bilangan bulat diizinkan untuk diteruskan ke fungsi ganda, kemudian aktifkan mode yang ketat dengan memasukkan Pola Deklarasi (Strict_Types = 1) sebagai baris pertama dalam skrip Anda:

 Deklarasi (strict_types = 1); function double (int $ value) return 2 * $ value;  $ a = double ("5"); var_dump ($ a); 

Kode ini akan menghasilkan a Kesalahan Fatal: TipeError Tak Terbuku: Argumen 1 diteruskan ke ganda () harus dari tipe integer, string yang diberikan.

Petunjuk tipe pengembalian

Fitur baru penting lainnya yang ditambahkan ke PHP 7 adalah kemampuan ekstremnya untuk memungkinkan jenis metode pengembalian serta fungsi; itu berperilaku sebagai tipe skalar mengisyaratkan. Perhatikan kode yang dihasilkan di bawah ini:

 fungsi a (): bool return 1;  var_dump (a ()); 

Cuplikan kode ini berjalan secara efisien tanpa peringatan, dan nilai yang dikembalikan diubah menjadi format bool secara otomatis. Dengan mengaktifkan mode ketat, kesalahan fatal dihasilkan:

Kesalahan Fatal: TipeError yang Tak Terbaik: Nilai Pengembalian A () harus dari tipe boolean, integer dikembalikan

Kesalahan ini adalah semacam pengecualian yang ditangkap dan ditangani dengan menggunakan blok mencoba/menangkap.

Kesimpulan

Saya harap Anda akan menikmati bekerja dengan semua versi baru PHP 7. Baca selengkapnya