Rumah >pembangunan bahagian belakang >PHP7 >Dua pengendali baharu ditambahkan pada php7: '?->' dan '??'
Selepas PHP7 dikeluarkan, semua orang mendapati bahawa perubahan penting ialah ia meningkatkan semakan jenis yang kukuh. Perubahan ini sangat bermanfaat kerana ia membantu kita mengelakkan banyak kesilapan seperti merujuk pembolehubah sebelum ia ditakrifkan.
Dalam versi PHP sebelumnya, jika kita tidak mentakrifkan pembolehubah, menggunakannya secara langsung akan mengakibatkan Undefined variable
ralat. Walau bagaimanapun, dalam PHP7, kami boleh menggunakan beberapa ciri baharu untuk mengelakkan masalah ini.
Ciri baharu ini termasuk dua pengendali baharu, iaitu: ?->
dan ??
. Mereka boleh menyelesaikan dua jenis masalah masing-masing.
?->Operator
Dalam versi PHP sebelumnya, kita boleh menentukan sama ada pembolehubah telah ditakrifkan dengan menggunakan fungsi isset. Walau bagaimanapun, ini hanya berfungsi untuk pembolehubah tunggal. Jika kita perlu menyemak sama ada sifat objek ditakrifkan, kita perlu menggunakan beberapa kod kompleks untuk menyelesaikan tugas ini.
Dalam PHP7, kita boleh menggunakan operator ?-> untuk menyemak sama ada sifat sesuatu objek telah ditakrifkan. Pengendali ini hanya mengembalikan nol jika penerima harta tersebut adalah batal, palsu atau pembolehubah tidak ditentukan, jika tidak, ia mengembalikan nilai harta tersebut. Dengan cara ini, kita boleh mengelak daripada menggunakan harta itu sebelum ia ditakrifkan, dengan itu mengelakkan ralat pembolehubah Tidak ditentukan.
<?php $obj = null; $value = $obj?->property; ?>
Dalam kod di atas, jika $obj adalah nol, maka $value akan ditetapkan kepada null, jika tidak $value akan ditetapkan kepada nilai atribut sifat $obj.
?? Operator
Satu lagi ciri baharu yang sangat berguna ialah ??. Operator ini boleh digunakan untuk menyemak sama ada pembolehubah ditakrifkan dan menetapkan nilai lalai jika tidak.
Dalam versi PHP sebelumnya, kami biasanya menggunakan operator ternary untuk menyelesaikan tugasan ini:
<?php $variable = isset($variable) ? $variable : 'default value'; ?>
Dalam PHP7, kami boleh menggunakan operator ?? dan bukannya kod di atas. Jika $variable ditakrifkan, $variable akan diberikan kepada $result, jika tidak $result akan diberikan nilai lalai.
<?php $variable = null; $result = $variable ?? "default value"; ?>
Dalam kod di atas, $result akan ditetapkan kepada "nilai lalai" kerana $variable adalah nol.
Ringkasan
Kedua-dua pengendali baharu ini boleh mengelakkan ralat Undefined variable
dengan sangat berkesan dan menjadikan kod kami lebih jelas dan mudah diselenggara. Apabila menggunakannya, kita hanya perlu memberi perhatian kepada penggunaan dan batasannya.
Atas ialah kandungan terperinci Dua pengendali baharu ditambahkan pada php7: '?->' dan '??'. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!