Maison  >  Article  >  développement back-end  >  La différence entre les objets php et les tableaux

La différence entre les objets php et les tableaux

(*-*)浩
(*-*)浩original
2019-07-31 15:38:285920parcourir

La différence entre les objets et les tableaux en php

La différence entre les objets php et les tableaux

Les objets ont non seulement des attributs, mais aussi des méthodes qui peuvent encapsuler ces données ; L'opération ne peut pas être effectuée avec des tableaux. (Apprentissage recommandé : Tutoriel vidéo PHP)

Par conséquent : Si vous stockez simplement des données, utilisez des tableaux, mais si vous souhaitez définir l'opération de données , il est recommandé d'utiliser l'objet  !

Exemple :

Si vous souhaitez ajouter une méthode commune aux données manipulées, comme la valeur de retour chiffrée, ou d'autres fonctions, vous pouvez l'envisager à ce moment, écrivez une classe et utilisez la méthode correspondante de l'objet pour obtenir les données souhaitées lors du renvoi des donné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 faire beaucoup de 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.

Le parcours foreach des tableaux PHP est parcouru dans l'ordre d'insertion, ce qui est le parcours de tableau PHP le plus rapide.

Les tableaux sont l'âme de PHP et sont très puissants, mais parfois la programmation orientée objet est également très pratique. La commutation entre les tableaux et les objets est également courante :

/**
 * 数组 转 对象
 * @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;
}

Plus d'articles sur les technologies liées à PHP, veuillez visiter la colonne Tutoriel graphique PHP pour apprendre !

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