ホームページ > バックエンド開発 > PHPチュートリアル > この場合、PHP の連結が加算よりも優先されるように見えるのはなぜですか?

この場合、PHP の連結が加算よりも優先されるように見えるのはなぜですか?

Barbara Streisand
リリース: 2024-10-31 06:34:30
オリジナル
361 人が閲覧しました

Why Does PHP Concatenation Seem to Prioritize Over Addition in This Case?

PHP の難問: 加算と連結の相互作用

PHP 開発者は、加算 ( ) と連結 (.) を組み合わせるときに独特の動作に遭遇する可能性があります。オペレーター。次のコードを考えてみましょう:

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

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

このコードを実行すると、次の出力が生成されます:

2
sum: 3
ログイン後にコピー

最初のエコーで "sum:" の出力に失敗するのはなぜですか?

演算子の優先順位と結合性

加算演算子と連結演算子の両方の演算子の優先順位は同じです。ただし、これらは左結合であり、左から右に評価されることを意味します。この結果、評価順序は次のようになります。

echo "sum:" . ($a + $b); // Parentheses force addition first
echo "sum:" . $a + $b; // Addition performed before concatenation
ログイン後にコピー

数値コンテキスト変換

2 行目では、かっこが使用されており、加算が最初に実行されます。ただし、最初の行では連結が優先され、次のようになります。

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

数値コンテキストでは、PHP は文字列 "sum: 1" を整数に変換し、結果は 1 になります。この数値加算により、結果 2.

ドキュメントとその影響

この動作は、PHP マニュアルには明示的に文書化されていません。ただし、1 つのステートメントで複数の演算子を使用する場合は、演算子の優先順位と結合規則を理解することが重要です。これを怠ると、この例で示すように、予期しない結果が生じる可能性があります。

したがって、特に異なる種類の演算子を組み合わせる場合は、明示的に括弧を使用して演算の順序を強制することをお勧めします。

以上がこの場合、PHP の連結が加算よりも優先されるように見えるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート