Heim >Backend-Entwicklung >PHP-Tutorial >Was ist der Elvis-Operator (?:) und wie funktioniert er in PHP?

Was ist der Elvis-Operator (?:) und wie funktioniert er in PHP?

Linda Hamilton
Linda HamiltonOriginal
2024-11-13 16:13:02453Durchsuche

What is the Elvis Operator (?:) and How Does it Work in PHP?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn