2010-03-21 13 views
12

Acabo de comenzar a practicar con PHP gettype() incorporado y su valor de retorno. Esta función es capaz de devolver el resultado de la prueba como boolean, integer, unknown type, etc. Pero entre esos resultados de prueba, hay uno que me llamó la atención: tipo desconocido.tipo gettype y desconocido en php

Después de leer gettype() e intentar encontrar alguna referencia aquí, no puedo obtener ninguna.

Entonces, la pregunta es ¿qué tipo de tipo se puede categorizar como unknown type? ¿Es posible o simplemente me falta leer algo?

Respuesta

19

Aquí es un tipo desconocido para usted:

$f = fopen('somefile.txt','r'); 
echo gettype($f); // resource 
fclose($f); 
echo gettype($f); // unknown 

Básicamente, cada vez que un resource pointer está cerrado, la variable que contiene el mango apuntará a un desconocido recursos. Otro ejemplo sería con imagecreate/imagedestroy de GD.

Nota: a partir de PHP 7.2, esto ya no es cierto. gettype devolverá resource (closed) luego.

+1

Wow, PHP. La salida del recurso de archivo "cerrado" aún muestra "Id. De recurso #x", pero su tipo ha desaparecido repentinamente. +1 Buena respuesta, aunque – lamas

+0

gracias, esta es una gran respuesta. ; D – justjoe

+2

Otro hecho divertido. gettype devuelve "objeto" para cierres debido a la forma en que se implementó. –

5

De acuerdo con el código fuente de PHP es el caso "predeterminado" en la declaración de cambio para esa función. Mi suposición es que hay alguna forma de manejar un error interno.

+1

PHP se volvió un poco más sucio a mis ojos. – lamas

+1

+1 para consultar con el código fuente. La votación negativa es totalmente inmerecida en mi opinión. – Gordon

Cuestiones relacionadas