Adakah Penilaian Litar Pintas PHP Meminimumkan Operasi yang Tidak Diperlukan?
PHP termasuk mekanisme yang dikenali sebagai penilaian litar pintas, yang menjimatkan penilaian dengan menamatkan semakan lanjut apabila syarat awal adalah palsu.
Pertimbangkan kod berikut:
if (is_valid($string) && up_to_length($string) && file_exists($file)) { ...... }
Jika is_valid($string) menilai kepada false, adakah PHP meneruskan untuk menyemak syarat yang tinggal, seperti up_to_length($string)?
PHP menunjukkan kemalasan dengan melaksanakan perbandingan paling sedikit yang diperlukan. Jika is_valid($string) mengembalikan false, PHP melangkau baki semakan, kerana keadaan keseluruhan sudah ditentukan sebagai palsu.
Untuk menggambarkan ini, pertimbangkan contoh berikut:
function saySomething() { echo 'hi!'; return true; } if (false && saySomething()) { echo 'statement evaluated to true'; }
Dalam kes ini, walaupun fungsi saySomething() ditakrifkan untuk menggemakan 'hai!', fungsi itu tidak pernah dipanggil kerana syarat pertama, palsu, litar pintas penilaian dan menghalang jurubahasa daripada mencapai syarat kedua.
Atas ialah kandungan terperinci Adakah Penilaian Litar Pintas PHP Menghalang Panggilan Fungsi yang Tidak Diperlukan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!