intval() がどのように機能するかを理解しようとしましたが、その例の 1 つは intval(042) = 34 です。デフォルトの基数が 10 であることはわかっているため、42 ではなく 34 を返す理由は何ですか。この例でゼロが果たしている役割は何ですか?
echo intval(042); //34
echo intval(42); //42
intval() がどのように機能するかを理解しようとしましたが、その例の 1 つは intval(042) = 34 です。デフォルトの基数が 10 であることはわかっているため、42 ではなく 34 を返す理由は何ですか。この例でゼロが果たしている役割は何ですか?
echo intval(042); //34
echo intval(42); //42
で始まる数値0
は、8 進数 (基数 8) と見なされます。0428 = 3410
実際、これは とは何の関係もありませんintval
。あなたが書くだけなら、echo 042;
あなたは得るでしょう34
。
同様に、数値を 16 進数で記述することもできます。echo 0xff;
を与え255
ます。
また、PHP 5.4 以降では、数値を 2 進数で記述することもできecho 0b1001;
ます9
。
数値の前の 0 は、この数値が 8 進数であることを意味するため、42 形式の 8 進数を 10 進数に変換すると、34 が得られます。
これがお役に立てば幸いです。