Ребята, почему перечисленные условия возвращают true?
var_dump("10" == "1e1"); //true
var_dump(100 == "1e2"); //true
var_dump("1" == "01"); //true
Спасибо
Если строка распознается как числовое значение, результирующее значение и тип определяется так, как показано далее.
К примеру:
100 == "1e2"
- true, так как 1 умножить на 10 в квадрате равно 100.
Аналогично, 1e1
это 1 умножить на 10 в первой степени, значит ровно 10. Такая запись удобна для записи очень больших или очень маленьких чисел. Например, 6.02e23
- это число Авогадро, которое без экспоненциальной записи будет иметь вид что-то вроде 602214076000000000000000.
Если строка не содержит какой-либо из символов '.', 'e', или 'E', и
значение числа помещается в пределы целых чисел (определенных
PHP_INT_MAX), строка будет распознана как целое число
Во всех остальных случаях она считается числом с плавающей точкой (float).
Значение определяется по начальной части строки. Если строка начинается с верного числового значения, будет использовано это значение. Иначе значением будет 0 (ноль). Верное числовое значение - это одна или более цифр (могущих содержать десятичную точку), по желанию предваренных знаком с последующим необязательным показателем степени. Показатель степени - это 'e' или 'E' с последующими одной или более цифрами.
Это все описано в этой статье из мануала по PHP.
Про экспоненциальную запись чисел вообще.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
PHP+MySQLИспользую XMLReader для импорта в БД XML-файлов (товарные фиды), так как XML-файлы большие (от 1 до 10 ГБ), кодировка UTF-8
Где почитать о php на тему создания маски и условий для автозаполнения мета-тегов? ЗдравствуйтеЯ начинающий, хочу изучить тему автоматизации...
Мне нужно получить время выполнения функцийМетод по типу microtime не подходит
У меня имеется приложение с несколькимим точками входа domainname backend