2010-03-21 5 views
12

Je viens de commencer à pratiquer avec PHP intégré gettype() et sa valeur de retour. Cette fonction est capable de retourner le résultat des tests tels que boolean, integer, unknown type, etc. Mais parmi ces résultats de test, il y en a un qui a attiré mon attention: type inconnu. Après avoir lu gettype() et en essayant de trouver une référence ici, je ne peux pas en obtenir. Donc, la question est de savoir quel type de type peut être catégorisé unknown type? Est-ce possible ou manque-t-il quelque chose?gettype et type inconnu dans php

Répondre

19

Voici un type inconnu pour vous:

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

En gros, chaque fois qu'un resource pointer est fermé, la variable tenant la poignée pointera vers une ressource inconnue . Un autre exemple serait avec imagecreate/imagedestroy de GD.

Remarque: à partir de PHP 7.2, cela n'est plus vrai. gettype renverra alors resource (closed).

+1

Wow, PHP. La sortie de la ressource de fichier "closed" montre toujours "Resource id #x" mais son type est soudainement inconnu. +1 Bonne réponse, bien que – lamas

+0

merci, c'est une excellente réponse. ; D – justjoe

+2

Un autre fait amusant. gettype renvoie "object" pour les fermetures en raison de la façon dont il a été implémenté. –

5

Selon le code source PHP c'est le cas "par défaut" dans l'instruction switch pour cette fonction. Ma conjecture est que c'est là un moyen de gérer une erreur interne.

+1

PHP est devenu un peu plus compliqué à mes yeux. – lamas

+1

+1 pour vérifier avec le code source. Le downvote est totalement immérité à mon avis. – Gordon

Questions connexes