Elvis Operator (?:) Terbongkar dalam PHP
Dalam kedalaman pangkalan kod PHP yang kompleks, anda mungkin menemui operator misteri: ?: pengendali. Digelar sebagai "pengendali Elvis," mungkin anda tertanya-tanya, "Apakah tujuannya?"
Pengendali ?:, pada dasarnya, menilai ke operan kirinya jika operan kiri dianggap "benar", dan operan kanan sebaliknya. Dalam erti kata lain:
foo ?: bar
kira-kira bersamaan dengan pengendali ternary:
foo ? foo : bar
atau dalam pernyataan if-else tradisional:
if (foo) { foo = foo; } else { foo = bar; }
Walau bagaimanapun, tidak seperti pengendali ternary, operator ?: menilai operan kiri sekali sahaja, meningkatkan kecekapan.
Contoh Penggunaan
Satu kes penggunaan biasa adalah untuk semakan sendiri, seperti yang dilihat dalam coretan kod:
$items = $items ?: $this->_handle->result('next', $this->_result, $this);
Di sini, ia memberikan hasil $this->_handle->result() kepada $items jika $items ialah null atau falsey, sambil membiarkan $item tidak berubah sebaliknya.
Contoh Tambahan
Berikut ialah beberapa lagi contoh untuk menyerlahkan tingkah laku:
var_dump(5 ?: 0); // 5 var_dump(false ?: 0); // 0 var_dump(null ?: 'foo'); // 'foo' var_dump(true ?: 123); // true var_dump('rock' ?: 'roll'); // 'rock' var_dump('' ?: 'roll'); // 'roll' var_dump('0' ?: 'roll'); // 'roll' var_dump('42' ?: 'roll'); // '42'
Sekiranya anda menghadapi ?: pengendali pada masa hadapan, ingat bahawa matlamatnya adalah untuk menyediakan cara ringkas untuk menilai dan menetapkan berdasarkan kebenaran, menjadikan kod anda lebih cekap dan boleh dibaca.
Atas ialah kandungan terperinci Apakah Operator Elvis (?:) dan Bagaimana Ia Berfungsi dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!