2009-11-19 5 views

risposta

44

È possibile verificare qualsiasi variabile per una certa classe:

if ($my_var instanceof classname) 

però, nel suo caso, che non funzionerà mai, da $ _GET [ "valid_user"] viene dalla richiesta e non è mai sarà un oggetto.

isUser() è probabilmente una funzione personalizzata da una libreria di gestione utenti che autentica la sessione corrente. Devi dare un'occhiata a come funziona se vuoi sostituirlo.

+1

Per gli altri: notare che 'classname' non è una stringa - è l'identificatore di classe (che possono essere importati con la parola' dell'uso al). – robsch

5

C'è una funzione in linguaggio PHP, che potrebbe aiutare a:

bool is_a (object $object , string $class_name) 

Da documentation: Verifica se l'oggetto è di questa classe o ha questa classe come uno dei suoi genitori

0

$ _GET [] le variabili sono più costanti delle variabili, sono di sola lettura .. ma è possibile accedervi come se fosse qualsiasi altro $variable.

Nel tuo esempio:

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

avrei speranza che avrei letto:

if (isUser($some_sanatized_variable)) 

.. a meno che isUser() è quello che sta facendo. 'Variabili' che gli insiemi PHP non appartengono a nessuna classe, il che dimostra la mia preoccupazione che User() non sia in grado di sapere con che cosa si tratta.

2

si potrebbe provare questo:

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