Sol işlenen ise sol işlenen için değerlendirir truthy , aksi takdirde sağ işlenen.
Sahte kodda,
foo = bar ?: baz;
kabaca
foo = bar ? bar : baz;
veya
if (bar) {
foo = bar;
} else {
foo = baz;
}
fark barsadece bir kez değerlendirilecek.
Bunu, fooyayınladığınız kod örneğinde gösterildiği gibi bir "kendi kendine kontrol" yapmak için de kullanabilirsiniz :
foo = foo ?: bar;
Bu atayacaktır bariçin fooeğer fooaksi takdirde terk edecek, null veya Falsey olduğu foodeğişmeden.
Bazı ö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 operatörü olarak adlandırılıyor .

nullya da herhangi bir değeri olduğunu varsaymaz . Just sayin '