三項演算子の文字列連結で予期しない結果が生じるのはなぜですか?

Barbara Streisand
リリース: 2024-10-24 02:19:29
オリジナル
611 人が閲覧しました

Why Unexpected Result in Ternary Operator String Concatenation?

三項演算子の文字列連結の予期しない結果

最近のコーディング シナリオでは、特定のコード動作により開発者が困惑しています。問題のコードは、三項条件演算子を利用して、指定された条件に基づいて文字列値を決定します。しかし、結果は期待どおりではありません。

コードと観察

精査中のコードは次のとおりです。

$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 サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!