PHP の連結と加算が予期しない結果を引き起こすのはなぜですか?

Susan Sarandon
リリース: 2024-10-31 10:50:29
オリジナル
394 人が閲覧しました

Why Does PHP Concatenation and Addition Lead to Unexpected Results?

PHP の曖昧さを明らかにする: 連結と加算の奇妙なケース

加算と連結の両方を行う場合、PHP の演算子の優先順位と結合性により予期しない結果が生じる可能性がありますオペレーターが関与しています。次のコードを考えてみましょう:

<code class="php">$a = 1;
$b = 2;

echo "sum: " .  $a + $b; // Output: 2
echo "sum: " . ($a + $b); // Output: sum: 3</code>
ログイン後にコピー

なぜ矛盾があるのでしょうか?すべては PHP の演算子の評価順序によって決まります。

加算 ( ) 演算子と連結 (.) 演算子は両方とも同じ優先順位を持ちますが、左結合です。これは、PHP が同じ優先順位を持つ複数の演算子を含む式に遭遇した場合、最初に左端の演算子を評価し、右に向かって評価することを意味します。

最初の echo ステートメントでは、連結演算子 (.) が最初に評価されます。

"sum: 1" + 2
ログイン後にコピー

文字列「sum: 1」は数値 (0) に変換され、$b (2) に加算され、2 の出力が得られます。

2 番目の echo ステートメントでは、かっこによって加算演算子が最初に評価されるように強制されます。

($a + $b) . "sum:"
ログイン後にコピー

結果は文字列 "sum:" と連結され、目的の出力 "sum: 3" が生成されます。 ".

この動作は、演算子の優先順位に関する PHP のドキュメントに記載されています。 「同じ優先順位を持つ演算子は左から右に評価されます。つまり、 first 、 then .、 then -.」

以上がPHP の連結と加算が予期しない結果を引き起こすのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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