Comment convertir une classe PHP en objet tableau

PHPz
Libérer: 2023-04-19 09:29:59
original
867 Les gens l'ont consulté

PHP est un langage de programmation de haut niveau qui fournit un grand nombre de fonctions et de fonctionnalités intégrées pour permettre aux développeurs d'écrire du code efficace et maintenable. Il existe de nombreux objets dans le langage PHP, et ces objets peuvent contenir plusieurs propriétés et méthodes. Pour un développeur, convertir un objet en tableau est très utile, cela permet d'avoir plus de flexibilité dans le traitement.

Cet article explique comment convertir une classe (ou un objet) PHP en un objet tableau. Dans cet article, nous explorerons quelques bonnes pratiques et conventions pour le code PHP.

  1. Convertir un objet en tableau

La première façon de convertir un objet en tableau est d'utiliser la fonction get_object_vars(). Cette fonction renverra un tableau associatif de propriétés d'objet. get_object_vars() 函数。该函数将返回一个由对象属性组成的关联数组。

class User {
    public $name;
    protected $email;
    private $password;
    
    public function __construct($name, $email, $password) {
        $this->name = $name;
        $this->email = $email;
        $this->password = $password;
    }
}

$user = new User('Tom', 'tom@example.com', '123456');
$userArray = get_object_vars($user);

print_r($userArray);    // 输出: Array ( [name] -> Tom )
Copier après la connexion

上述代码中,get_object_vars() 函数只返回了 $name 属性,因为 $email$password 属性是受保护的或私有的。

  1. 将类转换成数组

将 PHP 类转换成数组对象的方式是使用 get_class_methods() 函数获取对象的方法列表,然后循环遍历对象的所有公开属性和方法,并将它们作为数组输出。

class User {
    public $name;
    protected $email;
    private $password;
    
    public function __construct($name, $email, $password) {
        $this->name = $name;
        $this->email = $email;
        $this->password = $password;
    }

    public function getName() {
        return $this->name;
    }

    protected function getEmail() {
        return $this->email;
    }

    private function getPassword() {
        return $this->password;
    }
}

$user = new User('Tom', 'tom@example.com', '123456');

$objectVars = get_object_vars($user);   
$classMethods = get_class_methods($user);  
$userInfo = array();   

foreach ($classMethods as $methodName) {
    if (substr($methodName, 0, 3) == 'get') {
        $propertyName = lcfirst(substr($methodName, 3));
        if (array_key_exists($propertyName, $objectVars)) {
            $userInfo[$propertyName] = $user->$methodName();
        }
    } 
}

print_r($userInfo);
Copier après la connexion

上述代码中,$classMethods 变量包含对象的所有公开方法,通过循环遍历所有方法,并将方法名称转换成属性名称。如果该属性存在于 $objectVars 变量中,则将该属性添加到 $userInfo 数组中。

  1. 对象数组的序列化和反序列化

将对象数组序列化成字符串非常方便。PHP 中有一个预定义的函数 serialize() 可以将 PHP 对象序列化成一个字符串,这个字符串可以保存到文件或数据库中。要将被序列化的对象还原成 PHP 对象,可以使用 unserialize() 函数。

$user = new User('Tom', 'tom@example.com', '123456');
$userArray = array('name' => $user->name, 'email' => $user->email, 'password' => $user->password);

$serializeUser = serialize($userArray);

// 反序列化为对象数组
$unserializeUser = unserialize($serializeUser);

print_r($unserializeUser);
Copier après la connexion

上述代码中,$userArray 是数组对象,包含了 $user 对象的所有属性。PHP serialize() 函数将数组对象序列化为字符串存储。在反序列化时,可以使用 unserialize()rrreee

Dans le code ci-dessus, la fonction get_object_vars() renvoie uniquement l'attribut $name car $email et $password sont protégés ou privés. <p></p> <ol start="2">Convertir une classe en tableau<p></p>🎜La façon de convertir une classe PHP en objet tableau est d'utiliser la fonction <code>get_class_methods() pour obtenir la liste des méthodes de l'objet, puis parcourez l'objet toutes les propriétés et méthodes publiques et affichez-les sous forme de tableau. 🎜rrreee🎜Dans le code ci-dessus, la variable $classMethods contient toutes les méthodes publiques de l'objet. Toutes les méthodes sont parcourues dans une boucle et les noms de méthodes sont convertis en noms d'attributs. Si la propriété existe dans la variable $objectVars, la propriété est ajoutée au tableau $userInfo. 🎜
    🎜Sérialisation et désérialisation de tableaux d'objets🎜🎜🎜Il est très pratique de sérialiser des tableaux d'objets en chaînes. Il existe une fonction prédéfinie serialize() en PHP qui peut sérialiser un objet PHP en une chaîne, qui peut être enregistrée dans un fichier ou une base de données. Pour restaurer un objet sérialisé en objet PHP, utilisez la fonction unserialize(). 🎜rrreee🎜Dans le code ci-dessus, $userArray est un objet tableau, comprenant toutes les propriétés de l'objet $user. La fonction PHP serialize() sérialise les objets du tableau dans un stockage de chaînes. Pendant la désérialisation, vous pouvez utiliser la fonction unserialize() pour restaurer l'objet tableau d'origine en objet PHP. 🎜🎜Résumé🎜🎜Cet article décrit comment convertir des classes et des objets PHP en objets tableau, et comment sérialiser et désérialiser des tableaux d'objets PHP. Ces techniques nous permettent de gérer les objets PHP de manière plus flexible et plus pratique dans de nombreuses situations. Ces techniques sont très utiles lorsque nous devons traiter des objets PHP et les stocker dans une base de données ou sur le disque dur. Nous espérons que ces techniques vous seront utiles dans votre travail. 🎜

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal