2009-11-19 12 views

Répondre

44

Vous pouvez vérifier une variable pour une certaine classe:

if ($my_var instanceof classname) 

cependant, dans votre cas qui ne fonctionnera jamais, comme $ _GET [ « valid_user »] vient de la demande et ne va jamais être un objet. IsUser() est probablement une fonction personnalisée d'une bibliothèque de gestion des utilisateurs qui authentifie la session en cours. Vous devez jeter un coup d'oeil comment cela fonctionne si vous voulez le remplacer.

+1

Pour d'autres: noter que 'classname' est pas une chaîne - il est l'identificateur de classe (qui peut être importé avec le mot-clé' use'). – robsch

5

Il y a une fonction dans le langage PHP, ce qui pourrait vous aider:

bool is_a (object $object , string $class_name) 

De la documentation: Vérifie si l'objet est de cette classe ou a cette classe comme l'un de ses parents

0

Les variables $ _GET [] sont plus constantes que les variables, elles sont en lecture seule, mais elles sont accessibles comme n'importe quel autre $variable.

Dans votre exemple:

if (isUser($_GET['valid_user'])) 
{ 
... 
} 

Je espoir qu'il lirais:

if (isUser($some_sanatized_variable)) 

.. à moins isUser() est ce qui fait que. Les 'Variables' que les ensembles PHP n'appartiennent à aucune classe, ce qui illustre mon inquiétude que isUser() ne sache pas exactement à quoi il a affaire.

2

vous pouvez essayer ceci:

if (is_object($_GET['valid_user'])) 
{ 
    // more code here 
} 
Questions connexes