1. Caractéristiques
Prend en charge les requêtes clé->valeur typiques.
Peut être utilisé comme un tableau.
L'ajout et la suppression de nœuds sont d'une complexité O(1).
La clé prend en charge les types mixtes : il existe des tableaux d'index de tableau associés en même temps.
La valeur prend en charge les types mixtes.
Prend en charge le parcours linéaire : comme foreach.
2. Exemple
typedef struct _hashtable { uint nTableSize; //La longueur du tableau, pas le nombre d'éléments uint nTableMask //Le masque du tableau, toujours égal à nTableSize-1; uint nNumOfElements; //Le nombre d'éléments stockés ulong nNextFreeElement; //Pointe vers la prochaine position d'élément vide Bucket *pInternalPointer; //Pendant la boucle foreach, il est utilisé pour enregistrer la position de l'élément actuellement parcouru Bucket *pListHead; Seau *pListTail ; Bucket **arBuckets;//Tableau d'éléments stockés dtor_func_t pDestructor;//Destructeur zend_bool persistant;//S'il est persistant. De là, nous pouvons constater que les tableaux PHP peuvent être conservés en mémoire sans recharger chaque requête. char non signé nApplyCount ; zend_bool bApplyProtection; }Table de hachage ;
Ce qui précède sont les caractéristiques de la table de hachage en PHP. J'espère que cela sera utile à tout le monde.