web-dev-qa-db-fra.com

PHP Imprimer les clés d'un objet?

J'ai un objet BIRD, puis il y a [0] à [10] et chaque numéro a une sous-position comme "bug" ou "beetle" ou "gnat" et une valeur pour chacun d'entre eux.

Je veux imprimer

BIRD 
    [0]
       bug = > value 

Je ne peux pas savoir comment faire cela n'importe où - on parle de PUBLIC et PRIVÉ et de CLASSE et c'est là que je tombe

20
user723220

Vous pouvez facilement le faire en tapant le type de l'objet:

$keys = array_keys((array)$BIRD);

60
brenjt

Semblable à la réponse de brenjt, ceci utilise le get_object_vars au lieu de taper un objet.

$array = get_object_vars($object);
$properties = array_keys($array);
28
nick

Si l '"objet" est en fait un tableau associatif plutôt qu'un véritable objet, alors array_keys() vous donnera ce dont vous avez besoin sans avertissements ni erreurs.

D'un autre côté, si votre objet est un vrai objet, vous obtiendrez alors un avertissement si vous essayez d'utiliser array_keys() directement.

Vous pouvez extraire les paires clé-valeur d'un objet en tant que tableau associatif avec get_object_vars(), vous pouvez ensuite en obtenir les clés avec array_keys():

$keysFromObject = array_keys(get_object_vars($anObject));
2
Bart B