Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal, alguém saberia dizer pq que dá erro no preg_match quando eu tiro as aspas do número inteiro?
Dessa forma abaixo ele funciona:
$num = "01111111";
var_dump(preg_match("/^0[0-9]*$/", $num));
Dessa forma abaixo não funciona:
$num = 01111111;
var_dump(preg_match("/^0[0-9]*$/", $num));
Ele dá match quando coloco aspas, mas não dá match quando eu tiro as aspas.
Objetivo do preg_match: dar match nos números que começam com 0.
Desde já agradeço rapaziada, abração e fiquem com Deus.Grande @EdCesar, obrigado pela sua explicação, eu não fazia ideia disso.
No caso de fazer essa comparação no preg_match como devo prosseguir pra que o preg match identifique números que comecem com 0? Pq veja, eu tentei dessa forma e também não deu:
$num = (string) 01111111;
var_dump(preg_match("/^0[0-9]*$/", $num));>
5 minutos atrás, BrunoMs disse:
Grande @EdCesar, obrigado pela sua explicação, eu não fazia ideia disso.
No caso de fazer essa comparação no preg_match como devo prosseguir pra que o preg match identifique números que comecem com 0? Pq veja, eu tentei dessa forma e também não deu:
$num = (string) 01111111;
var_dump(preg_match("/^0[0-9]*$/", $num));
Simplesmente deixe com as aspas! :)
Abraço!Beeleza, valeuu @EdCesar
@BrunoMs Joia!
Quando você coloca zero na frente, de um número, não de uma string, o PHP converte para octal
Por exemplo, sabemos que oito em octal é 10, então colocando o zero a frente teremos a conversão:
echo decoct(8); // Imprime 10, convertendo de decimal para octal
echo 08;
//Retornara um PHP Parse error, já que octal vai de 0 à 7!