1 つの値が数値で、もう 1 つの値が文字列である場合、加算の操作はどのように機能するのだろうか 例:
echo $j = 1 + "stackoverflow";
私はこの式を実行しようとしました.それは私に1を出力します..文字列が関与していない理由を誰かが説明できますか?
1 つの値が数値で、もう 1 つの値が文字列である場合、加算の操作はどのように機能するのだろうか 例:
echo $j = 1 + "stackoverflow";
私はこの式を実行しようとしました.それは私に1を出力します..文字列が関与していない理由を誰かが説明できますか?
stackoverflow
数字なしで始まるので、php は 0 を取ります
1stackoverflow
数字1で始まるため、1になります
これを行うと、PHP は文字列の整数値を解析しようとします。この場合"stackoverflow"
、 に解析され0
ます。
を使用すると、文字列の整数値が何であるかを自分で確認できますintval()
。
intval("stackoverflow"); // = 0
intval("123stackoverflow"); // = 123
遊んで慣れてください。
上記の操作では、PHP は両方のオペランドを数値に変換しようとします。したがって、「stackoverflow」文字列は実際には数値 - この場合は 0 に変換されます。なぜこれが起こるのかは、このマニュアルページで最もよく説明されています - 文字列を数値に変換します。ご了承ください
$j = 1 + "1stackoverflow"
結果として 2 が生成されます。
文字列を整数に変換しようとしてから、それを数値に追加するためです。基本的にはecho $j = 1 + intval("stackoverflow");
、文字列を数値に連結したい場合は、連結演算子、つまりドットを使用する必要があります:echo $j . "stackoverflow"