ホームページ  >  記事  >  バックエンド開発  >  三項演算子と文字列連結が異常な動作を引き起こすのはなぜですか?

三項演算子と文字列連結が異常な動作を引き起こすのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-24 03:40:30269ブラウズ

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

三項演算子と文字列連結の異常な動作

難題

次のコード スニペットを考えてみましょう:

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

予想されるかもしれませんこのコードは、$paperType が 'bond' の場合は文字列 'Paper: Bond' を $description に割り当て、それ以外の場合は 'Paper: Other' を割り当てます。ただし、観察される動作は異なります。

逸脱の識別

実行時、$description は、'Paper: ' の先頭を省略して、'Bond' または 'Other' のいずれかを受け取ります。この予期しない結果は、かっこの配置が間違っていることが原因です。

異常の修正

コードを修正するには、文字列が正しい順序で連結されるようにかっこを追加する必要があります。

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

三項式を括弧で囲むことにより、連結操作が最初に実行され、'Bond' または 'Other' の連結結果に 'Paper: ' が付加されます。

以上が三項演算子と文字列連結が異常な動作を引き起こすのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。