Maison >développement back-end >tutoriel php >Comment puis-je accéder aux propriétés d'objet PHP avec des noms illégaux comme « éléments à faire » ?

Comment puis-je accéder aux propriétés d'objet PHP avec des noms illégaux comme « éléments à faire » ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-24 03:32:35569parcourir

How Can I Access PHP Object Properties with Illegal Names Like

Accès aux propriétés avec des noms illégaux en PHP

Dans PHP, accéder aux propriétés d'objets avec des noms illégaux, tels que ceux contenant des tirets (-), peut être un défi. Considérons le scénario suivant :

Problème :

Vous avez récupéré un objet depuis un appel API, et malgré son var_dump révélant la présence d'une propriété "todo-items" , vous ne pouvez pas y accéder directement en utilisant $object->todo-items.

Solution :

Il existe plusieurs méthodes pour accéder à ces propriétés :

  1. Encapsulation du nom de la propriété :

    PHP vous permet d'encapsuler les noms de propriétés entre accolades pour y accéder directement. Cela fonctionne même pour les noms illégaux :

    $object->{'todo-items'}
  2. Affectation de variable :

    Attribuez le nom de la propriété à une variable et accédez-y à l'aide de la variable entre crochets :

    $todolist = 'todo-items';
    $object->$todolist
  3. Tableau Conversion :

    Convertissez l'objet en tableau en utilisant une technique comme celle employée par Zend_Config :

    public function toArray()
    {
        $array = array();
        foreach ($this->_data as $key => $value) {
            if ($value instanceof StdClass) {
                $array[$key] = $value->toArray();
            } else {
                $array[$key] = $value;
            }
        }
        return $array;
    }

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn