Числовые строки В PHP строка (string) считается числовой, если её можно интерпретировать как целое (int) число или как число с плавающей точкой (float). Формально с PHP 8.0.0: В PHP также присутствует концепция префиксной числовой строки. Это строка, которая начинается как числовая и продолжается любыми другими символами. Любая строка, содержащая букву E (без учёта регистра), ограниченную цифрами, будет восприниматься как число, выраженное в научной нотации. Это может привести к неожиданным результатам. ]]> Строки, используемые в числовых контекстах Когда строку необходимо использовать в качестве числа (например арифметические операции, декларация целочисленного типа, и т. д.), используется следующий алгоритм действий: Если строка числовая, представляет целое число и не превышает максимально допустимого значения для типа int (определённого в PHP_INT_MAX), то она приводится к типу int. Иначе она приводится к типу float. Если в заданном контексте дозволительно использовать префиксную числовую строку, то, если начало строки представляет целое число и не превышает максимально допустимого значения для типа int (определённого в PHP_INT_MAX), то она приводится к типу int. Иначе она приводится к типу float. Также, в этом случае, выдаётся ошибка уровня E_WARNING. Если строка не числовая - выбрасывается исключение TypeError. Поведение до PHP 8.0.0 До PHP 8.0.0 строка считалась числовой только в случае, если она начиналась с пробельных символов. Если она завершалась пробельными символами — она считалась префиксной числовой. До PHP 8.0.0, когда строку необходимо использовать как число, использовался тот же алгоритм, что и описан выше, но с некоторыми отличиями: Использование префиксной числовой строки вызывало ошибку уровня E_NOTICE, а не E_WARNING. Если строка не являлась числовой, вызывалась ошибка уровня E_WARNING, а сама строка приводилась к числу 0. До PHP 7.1.0 не вызывалась ошибка уровня ни E_NOTICE, ни E_WARNING. ]]>