3 Ocak 2010, Pazar
?: ('') Elvis operatör, PHP
Bazı PHP kodu Bunu bugün gördüm
$items = $items ?: $this->_handle->result('next', $this->_result, $this);
?: operatörü ile burada kullanılan aşina değilim. Üçlü bir operatör gibi görünüyor, ama eğer yüklem doğruysa değerlendirilmesi gerektiği ifade atlanmış. Bu ne anlama geliyor?
CEVAP
3 Ocak 2010, Pazar
EÄŸer sol iÅŸlenen truthy ve saÄŸ iÅŸlenen aksi takdirde sol iÅŸlenen olarak deÄŸerlendirilir.
İçinde yalancı,
foo = bar ?: baz;
kabaca giderir
foo = bar ? bar : baz;
ya
if (bar) {
foo = bar;
} else {
foo = baz;
}
bar yalnızca bir kez değerlendirilir fark ile.
Ayrıca bu "self-check" foo kod örneğinde gösterildiği gibi deftere bir şey yapmak için kullanabilirsiniz
foo = foo ?: bar;
Bu ise foo boş veya falsey ise foo 14 *atar, başka foo değişmeden bırakır.
Biraz daha örnekler:
<?php
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'
?>
Bu arada Elvis operator deniyor.

Bunu PaylaÅŸ:

(Splat) çift * bir operatör ne iş yapa...
Nasıl'==' sonsuz özyineleme ...
Üçlü operatör (?:) Bash...
Neden değil't [] STL Haritalar iç...
(Tekli) * operatör bu Ruby kod ne yapa...