Мой код
<?php
var_dump('0xD' * 1 );
var_dump((int)'0xD');
var_dump(intval('0xD'));
var_dump((float)'0xD');
Фактический результат:
int(13)
int(0)
int(0)
float(0)
Почему результат первых двух условий не одинаковый? Можете ли вы предоставить мне правильную документацию?
Все, что я нашел,
- Тип Casting: Тип casting в PHP работает так же, как и в C: имя желаемого типа записывается в круглых скобках перед переменной который должен быть брошен. Возможно, не совсем очевидно, что произойдет при кастинге между определенными типами. Для получения дополнительной информации см. Следующие разделы:...
- Преобразование в целое число: Из строк: См. Преобразование строк в числа
- Преобразование строк в числа Когда строка оценивается в числовом контексте, результирующее значение и тип определяются следующим образом.
Итак, насколько я понимаю, docs говорят, что приведение в int напрямую и путем ввода числового контекста должно быть одинаковым. Какая у меня ошибка?
ADDED: попробуйте проверить первый и второй код (и выходы) перед ответом.