Strings numéricas Uma string PHP é considerada numérica se puder ser interpretada como int ou float. Formalmente a partir do PHP 8.0.0: O PHP também tem um conceito de strings numéricas principais. Isso é simplesmente uma string que começa como uma string numérica seguida por qualquer caractere. Qualquer string que contenha a letra E (sem distinção entre maiúsculas e minúsculas) delimitada por números será vista como um número expresso em notação científica. Isso pode produzir resultados inesperados. Comparações de notações científicas ]]> Strings usadas em contextos numéricos Quando uma string precisa ser avaliada como número (por exemplo, operações aritméticas, declaração de tipo int, etc.), as seguintes etapas são executadas para determinar o resultado: Se a string for numérica, resolva para um int se a string for uma string numérica inteira e se encaixar nos limites do tipo int (conforme definido por PHP_INT_MAX), caso contrário resolva para um float. Se o contexto permitir strings numéricas iniciais e a string for uma, resolva para um int se a parte inicial da string for uma string numérica inteira e se encaixar nos limites do tipo int (conforme definido por PHP_INT_MAX), caso contrário resolva para um float. Além disso, um erro de nível E_WARNING é gerado. A string não é numérica, lance um TypeError. Comportamento antes do PHP 8.0.0 Antes do PHP 8.0.0, uma string era considerada numérica apenas se tivesse espaços em branco à esquerda, se tivesse espaços em branco à direita, a string era considerada numérica à esquerda. Antes do PHP 8.0.0, quando uma string era usada em um contexto numérico, ela executava as mesmas etapas acima com as seguintes diferenças: O uso de uma sequência numérica inicial geraria um E_NOTICE em vez de um E_WARNING. Se a string não for numérica, um E_WARNING foi levantado e o valor 0 seria retornado. Antes do PHP 7.1.0, nem E_NOTICE nem E_WARNING eram gerados. ]]>