2010-09-20 7 views
3

Je google, mais honnêtement je ne sais pas quoi chercherVérifiez si une classe a un champ par chaîne

Dire que j'ai cette classe

class a 
{ 
    public $a_a, $a_b, $a_c; 
} 

$true = "a_a"; 
$false = "a_e"; 

Comment puis-je utiliser les cordes pour prouver que la classe contient le champ a_a, mais pas a_e?

Merci

Répondre

7

Avec

  • property_exists - Vérifie si l'objet ou une classe possède une propriété

Dans votre cas:

var_dump(property_exists('a', 'a_a')); // TRUE 

Vous pouvez également utiliser la Reflection API , mais c'est trop pour t son UseCase:

$reflector = new ReflectionClass('a'); 
var_dump($reflector->hasProperty('a_e')); // FALSE 
1

Vous pouvez utiliser property_exists ou Reflection. Mais vous devez savoir qu'avant PHP 5.3 property_exists a également vérifié la visibilité de la propriété. Donc, si vous utilisez PHP 5.2 et que vous voulez vérifier l'existence d'une propriété privée, vous devez utiliser Reflection.

Questions connexes