ホームページ  >  記事  >  バックエンド開発  >  三項演算子のパズル: 文字列の連結が期待どおりに機能しないのはなぜですか?

三項演算子のパズル: 文字列の連結が期待どおりに機能しないのはなぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-24 02:19:02983ブラウズ

Ternary Operator Puzzle: Why Isn't String Concatenation Working as Expected?

三項演算子の問い合わせ: 連結の難題

このプログラミングの難題において、好奇心旺盛なプログラマーは、三項演算子と文字列連結を利用すると予期せぬ結果に遭遇します。 。元のコードは次のようになります:

$description = 'Paper: ' . ($paperType == 'bond') ? 'Bond' : 'Other';

$paperType が "bond" に等しい場合は $description 変数に文字列 "Paper: Bond"、それ以外の場合は "Paper: Other" を保持することが目的でした。しかし、得られた結果は単に「結合」か「その他」でした。

この問題を解決する鍵は、三項式の演算順序にあります。三項演算子は条件付き代入の便利なショートカットですが、文字列の連結とは異なる優先順位で動作します。その結果、実際には三項式の評価前に連結操作が行われます。

これを修正するには、三項式の評価後に連結が実行されるようにコードを変更する必要があります。修正されたコード:

$description = 'Paper: ' . ($paperType == 'bond' ? 'Bond' : 'Other');

三項式を括弧で囲むことにより、コードは三項式の結果に対して文字列連結が確実に実行され、「Paper: Bond」または「Paper: Bond」のいずれかの予期される出力が生成されます。 $paperType の値に基づく「用紙: その他」

以上が三項演算子のパズル: 文字列の連結が期待どおりに機能しないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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