Elvis-Operator (?:) in PHP enträtselt
In den Tiefen einer komplexen PHP-Codebasis stoßen Sie möglicherweise auf einen mysteriösen Operator: den ?: Operator. Er wird als „Elvis-Operator“ bezeichnet und Sie fragen sich vielleicht: „Was ist sein Zweck?“
Der ?:-Operator wertet im Wesentlichen seinen linken Operanden aus, wenn der linke Operand als „wahr“ angesehen wird, und der sonst der rechte Operand. Mit anderen Worten:
foo ?: bar
entspricht in etwa dem ternären Operator:
foo ? foo : bar
oder in einer traditionellen if-else-Anweisung:
if (foo) { foo = foo; } else { foo = bar; }
Jedoch Im Gegensatz zum ternären Operator wertet der ?:-Operator den linken Operanden nur einmal aus, was die Effizienz erhöht.
Beispielverwendung
Ein häufiger Anwendungsfall ist die Selbstprüfung, z im Codeausschnitt zu sehen:
$items = $items ?: $this->_handle->result('next', $this->_result, $this);
Hier wird das Ergebnis von $this->_handle->result() $items zugewiesen, wenn $items null oder false ist, während $items unverändert bleibt andernfalls.
Zusätzliche Beispiele
Hier sind ein paar weitere Beispiele, um das Verhalten zu verdeutlichen:
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'
Sollten Sie auf einen ?:-Operator stoßen? Denken Sie in Zukunft daran, dass das Ziel darin besteht, eine prägnante Möglichkeit zur Bewertung und Zuweisung auf der Grundlage der Wahrhaftigkeit bereitzustellen, um Ihren Code effizienter und lesbarer zu machen.
Das obige ist der detaillierte Inhalt vonWas ist der Elvis-Operator (?:) und wie funktioniert er in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!