0

intval() がどのように機能するかを理解しようとしましたが、その例の 1 つは intval(042) = 34 です。デフォルトの基数が 10 であることはわかっているため、42 ではなく 34 を返す理由は何ですか。この例でゼロが果たしている役割は何ですか?

echo intval(042); //34
echo intval(42); //42
4

3 に答える 3

9

先頭の 0 は、それを8 進/基数 8として解釈するように php に指示します。

0428 進数は3410 進数です。

PHP の整数のその他の形式のリストは、こちらで確認できます。

于 2013-04-01T13:38:44.040 に答える
6

で始まる数値0は、8 進数 (基数 8) と見なされます。0428 = 3410

実際、これは とは何の関係もありませんintval。あなたが書くだけなら、echo 042;あなたは得るでしょう34

同様に、数値を 16 進数で記述することもできます。echo 0xff;を与え255ます。

また、PHP 5.4 以降では、数値を 2 進数で記述することもできecho 0b1001;ます9

于 2013-04-01T13:40:21.213 に答える
1

数値の前の 0 は、この数値が 8 進数であることを意味するため、42 形式の 8 進数を 10 進数に変換すると、34 が得られます。

これがお役に立てば幸いです。

于 2013-04-01T13:39:42.560 に答える