ホームページ >バックエンド開発 >PHPチュートリアル >三項演算子の文字列連結で予期しない結果が生じるのはなぜですか?
三項演算子の文字列連結の予期しない結果
最近のコーディング シナリオでは、特定のコード動作により開発者が困惑しています。問題のコードは、三項条件演算子を利用して、指定された条件に基づいて文字列値を決定します。しかし、結果は期待どおりではありません。
コードと観察
精査中のコードは次のとおりです。
$description = 'Paper: ' . ($paperType == 'bond') ? 'Bond' : 'Other';
意図このコードの背後にあるのは、$paperType が 'bond' の場合は $description 変数に 'Paper: Bond' を割り当て、$paperType が 'bond' でない場合は 'Paper: Other' を割り当てることです。
ただし、このコードでは、開発者は $description に値 'Bond' または 'Other' が直接割り当てられており、予期されるプレフィックス 'Paper: ' が付加されていないことに気付きました。この一見奇妙な結果は、説明の検索を促しました。
修正
詳しく分析すると、三項式の周囲のかっこが省略されていることが明らかになります。この省略により操作の順序が変更され、予期しない動作が発生します。
正しいコードは次のとおりです。
$description = 'Paper: ' . ($paperType == 'bond' ? 'Bond' : 'Other');
括弧を使用すると、文字列 'Paper: ' が正しく連結されます。三項式の結果を使用して、目的の出力が確実に達成されるようにします。
以上が三項演算子の文字列連結で予期しない結果が生じるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。