Salida extraña, cuando el número comienza con 0

1. script:

$num = "00445790"; echo $num; 

devoluciones:

 00445790 

2. script

 $num = 00445790; echo $num; 

devoluciones:

 2351 

¿Alguien puede explicar por qué obtengo 2351 en el segundo guión?

Integers que comienzan con cero se consideran octales. Debido a que los enteros octal solo usan números del 0 al 8, se ignoran todos los 9 encendidos.

Entonces, 00445790 pasa a ser 004457 que es 2351 en decimal.