Maison > Article > développement back-end > Quelle est la différence entre les objets php et les tableaux
Quelle est la différence entre les objets php et les tableaux ?
La différence entre les objets et les tableaux en php
Les objets ont non seulement des attributs, mais aussi des méthodes peuvent encapsuler des opérations sur ces données, tandis que les tableaux le sont ; Moins que.
Donc : si vous stockez simplement des données, utilisez des tableaux, mais si vous souhaitez définir des opérations sur ces données, il est plus recommandé d'utiliser des objets !
Recommandé : [Tutoriel PHP]
Exemple :
Si vous souhaitez ajouter une méthode commune aux données manipulées, par exemple, le la valeur de retour est chiffrée, ou d'autres fonctions, vous pouvez envisager d'écrire une classe à ce moment-là, et lors du renvoi des données, utilisez la méthode correspondante de l'objet pour obtenir les données souhaitées.
Du point de vue de la conception et de l'expansion du framework, si vous pouvez toujours utiliser des objets, utilisez des objets pour faciliter l'expansion et la maintenance. Par exemple, si des tableaux sont utilisés partout dans votre code, un jour les données renvoyées par l'interface changent et vous devez apporter de nombreuses modifications. Si vous utilisez des objets, la charge de travail de modification sera moindre.
Les tableaux PHP sont implémentés à l'aide de tables de hachage, et leurs ajouts et suppressions peuvent essentiellement être effectués en O(1).
Pour la traversée des tableaux PHP, la navigation se fait par taille de clé, ce qui est plus lent que foreach.
La traversée Foreach du tableau PHP est parcourue dans l'ordre d'insertion, ce qui est la traversée de tableau PHP la plus rapide.
La structure sous-jacente des objets tableau
Conversion des objets tableau
/** * 数组 转 对象 * * @param array $arr 数组 * @return object */ function array_to_object($arr) { if (gettype($arr) != 'array') { return; } foreach ($arr as $k => $v) { if (gettype($v) == 'array' || getType($v) == 'object') { $arr[$k] = (object)array_to_object($v); } } return (object)$arr; } /** * 对象 转 数组 * * @param object $obj 对象 * @return array */ function object_to_array($obj) { $obj = (array)$obj; foreach ($obj as $k => $v) { if (gettype($v) == 'resource') { return; } if (gettype($v) == 'object' || gettype($v) == 'array') { $obj[$k] = (array)object_to_array($v); } } return $obj; }
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!