61

こんにちは私はこのコードが(少なくとも私にとっては)間違った結果をもたらす理由を知りたいだけです。

まあ、おそらく私はここで間違っています

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

paperTypeが「Bond」に等しい場合、説明は「Paper:Bond」であり、paperTypeが「Bond」に等しくない場合、説明は「Paper:Other」であると推測していました。

しかし、このコードを実行すると、説明は「Bond」または「Other」のいずれかになり、「Paper:」という文字列がどこにあるのか疑問に思いました。

4

3 に答える 3

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

文字列が正しい順序で文字列に連結されるように、括弧を追加してみてください。

于 2009-08-23T00:07:09.730 に答える
13

これは、演算子の優先順位に関連しています。次のことを行う必要があります。

$description = 'Paper: ' . (($paperType == 'bond') ? 'Bond' : 'Other');
于 2009-08-23T00:08:26.653 に答える