Heim > Backend-Entwicklung > PHP-Tutorial > Warum kommt es zu einem unerwarteten Ergebnis bei der Verkettung ternärer Operatorzeichenfolgen?

Warum kommt es zu einem unerwarteten Ergebnis bei der Verkettung ternärer Operatorzeichenfolgen?

Barbara Streisand
Freigeben: 2024-10-24 02:19:29
Original
688 Leute haben es durchsucht

Why Unexpected Result in Ternary Operator String Concatenation?

Ternäre Operator-String-Verkettung – unerwartetes Ergebnis

In einem aktuellen Codierungsszenario hat ein bestimmtes Codeverhalten einen Entwickler verwirrt. Der betreffende Code verwendet den ternären Bedingungsoperator, um einen Zeichenfolgewert basierend auf einer bestimmten Bedingung zu bestimmen. Die Ergebnisse sind jedoch nicht wie erwartet.

Der Kodex und die Beobachtung

Der untersuchte Kodex ist wie folgt:

$description = 'Paper: ' . ($paperType == 'bond') ? 'Bond' : 'Other';
Nach dem Login kopieren

Die Absicht Hinter diesem Code steckt die Zuweisung von „Paper: Bond“ zur Variablen $description, wenn $paperType „bond“ ist, und „Paper: Other“, wenn $paperType nicht „bond“ ist.

Bei der Ausführung von Code hat der Entwickler festgestellt, dass $description entweder direkt der Wert „Bond“ oder „Other“ zugewiesen wird, ohne das erwartete Präfix „Paper:“. Dieses scheinbar seltsame Ergebnis hat die Suche nach einer Erklärung ausgelöst.

Die Lösung

Bei näherer Analyse wird deutlich, dass rund um den ternären Ausdruck Klammern weggelassen wurden. Durch diese Auslassung wird die Reihenfolge der Vorgänge geändert, was zu unerwartetem Verhalten führt.

Der korrekte Code sollte wie folgt lauten:

$description = 'Paper: ' . ($paperType == 'bond' ? 'Bond' : 'Other');
Nach dem Login kopieren

Wenn die Klammern vorhanden sind, ist die Zeichenfolge „Paper:“ korrekt verkettet mit dem Ergebnis des ternären Ausdrucks, um sicherzustellen, dass die gewünschte Ausgabe erreicht wird.

Das obige ist der detaillierte Inhalt vonWarum kommt es zu einem unerwarteten Ergebnis bei der Verkettung ternärer Operatorzeichenfolgen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage