Я случайно делаю оператор деления в PHP так:
$a = 012; //or 0012 or even 00012
echo $a/4;
echo gettype($a/4);
Я получил вывод: 2.5 double
, // Я не знаю, почему вывод 2.5
,
Я попробовал еще раз:
$a=12;
echo $a/4;
echo gettype($a/4);
Это будет выводить 3 Integer
,
Я прочитал документацию в https://secure.php.net/manual/en/language.operators.arithmetic.php
но до сих пор не могу этого понять.
Кто-нибудь может мне помочь?
Значение, которое звезд с нуля, является восьмеричным. Так 012
в восьмеричном 10
в десятичном. 10 разделить 4 на 2,5.
Одна вещь, которую вы можете сделать, это очистить значение $ a перед его использованием.
$a = ltrim($a, '0');
Это удалит все предыдущие 0 и означает, что 012 => 12
и не 10
когда вы приведете его к Int
например
$a = 0012;
$a = ltrim($a, '0');
echo $a/4;
echo gettype($a/4);