Heim  >  Artikel  >  Backend-Entwicklung  >  Warum führen der ternäre Operator und die String-Verkettung zu anomalem Verhalten?

Warum führen der ternäre Operator und die String-Verkettung zu anomalem Verhalten?

Linda Hamilton
Linda HamiltonOriginal
2024-10-24 03:40:30269Durchsuche

Why Does the Ternary Operator and String Concatenation Produce Anomalous Behavior?

Anomales Verhalten von ternärem Operator und String-Verkettung

Rätsel

Bedenken Sie den folgenden Codeausschnitt:

<code class="php">$description = 'Paper: ' . ($paperType == 'bond') ? 'Bond' : 'Other';</code>

Man könnte es ahnen dass dieser Code $description die Zeichenfolge „Paper: Bond“ zuweisen würde, wenn $paperType „bond“ und andernfalls „Paper: Other“ ist. Das beobachtete Verhalten ist jedoch unterschiedlich.

Erkennen der Abweichung

Bei der Ausführung erhält $description entweder „Bond“ oder „Other“, wobei das Vorwort „Paper:“ weggelassen wird. Dieses unerwartete Ergebnis ist auf die fehlerhafte Platzierung von Klammern zurückzuführen.

Behebung der Anomalie

Um den Code zu korrigieren, müssen Klammern hinzugefügt werden, um sicherzustellen, dass die Zeichenfolge in der richtigen Reihenfolge verkettet wird:

<code class="php">$description = 'Paper: ' . ($paperType == 'bond' ? 'Bond' : 'Other');</code>

Durch das Einschließen des ternären Ausdrucks in Klammern stellen wir sicher, dass die Verkettungsoperation zuerst ausgeführt wird, indem „Papier:“ an das verkettete Ergebnis von „Bond“ oder „Anderes“ angehängt wird.

Das obige ist der detaillierte Inhalt vonWarum führen der ternäre Operator und die String-Verkettung zu anomalem Verhalten?. 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