Refactoring PHP - Lez. 2: la propriété tableau d'une classe
Aujourd'hui, nous discuterons les propriétés se composent d'une classe ou une propriété qui contient un tableau.
Nous avons vu dans la leçon précédente ( Refactoring PHP - Lez 1:. propriétés d'une classe ) la façon d'écrire de simples propriétés d'une classe.
En ce qui concerne les propriétés de règles s'appliquent composites convention de nommage introduit dans le didacticiel précédent, à l'exception des méthodes d'accès à la même chose. Ci-dessous la norme à suivre au niveau de la classe.
Méthode addXXX
Pour ajouter un élément à une propriété composée d'utiliser une méthode avec la signature suivante:
addXXX fonction publique ($ valeur, $ key = null)
Où XXX devrait être remplacé par le nom de la propriété.
Ce qui suit est un exemple:
Classe de classe { $ Élèves privés; fonction publique addAlunni ($ valeur, $ key = null) { if (is_array ($ value)) { foreach ($ valeurs as $ pos => $ item) { if ($ key! = null) { $ This-> étudiants [$ position] = $ Element; Else {} $ This-> étudiants [] = $ element; } } } Else if ($ key == null) { $ This-> étudiants [] = $ valeur; Else {} $ This-> étudiants [$ key] = $ valeur; } } } |
Comme on le voit les paramètres à passer sont deux: la première liaison, l'option seconde.
Comme nous entrons dans méthode vérifie si la valeur addXXX $ est un tableau. si c'est le cas en boucle sur ce dernier, et si le paramètre $ key est nulle, nous les éléments de file d'attente dans la propriété, mais si $ key n'est pas insérer la valeur null $ pièce en position clé $.
Si $ la valeur est un tableau et $ key est égale à une valeur nulle insérer directement dans la propriété $ élèves.
Enfin, le dernier cas est de savoir si le paramètre $ key est renforcée, dans lequel insérer la valeur au cas $ $ $ principales propriétés des élèves de la classe.
Méthode removeXXX
Pour supprimer un élément d'une propriété fait d'utiliser une méthode avec la signature suivante:
removeXXX fonction publique ($ key = null)
Où XXX devrait être remplacé par le nom de la propriété.
Ce qui suit est un exemple:
Classe de classe { $ Élèves privés; fonction publique removeAlunni ($ key = null) { if (is_array ($ key)) { foreach ($ position as $ key => $ value) { unset ($ this-> étudiants [$ value]); } } Else if ($ key == null) { $ This-> étudiants = array (); Else {} unset ($ this-> étudiants [$ key]); } } } |
Comme nous entrons dans la méthode removeXXX est vérifiée si le paramètre $ key est un tableau. dans l'affirmative boucle sur celui-ci, et éliminer toutes les éléments à des positions correspondant à des valeurs contenues dans le paramètre du procédé.
Si $ key est un tableau et est égal aux élèves dollars resetteremo nulles.
Enfin, le dernier cas est de savoir si le paramètre $ key est renforcée, dans ce cas, la valeur va supprimer la position correspondante dans la propriété $ élèves clés dans la classe.
Méthode getXXXQ
Pour récupérer des éléments d'une propriété fait d'utiliser une méthode avec la signature suivante:
getXXXQ fonction publique ($ key = null)
Où XXX devrait être remplacé par le nom de la propriété.
Ce qui suit est un exemple:
Classe de classe { $ Élèves privés; fonction publique getAlunni ($ key = null) { if (is_array ($ key)) { $ Éléments = array (); foreach ($ position as $ key => $ value) { [$ Value] = $ Éléments $ this-> étudiants [$ value]; } return $ articles; } Else if ($ key == null) { return $ this-> enfants; } return $ this-> étudiants [$ key]; } } |
Dès que nous entrons dans la méthode getXXXQ est vérifiée si le paramètre $ key est un tableau. si la boucle de sorte à travers sur ce dernier, et finalement retourner un tableau contenant les valeurs des éléments.
Si $ key est un tableau et est égal à null sera restituer tous les biens $ élèves.
Enfin, le dernier cas correspond à la valeur du paramètre à $ key, dans ce cas, nous allons retourner la valeur correspondant à la position dans la propriété $ élèves clés dans la classe.
Nous fermons la leçon par l'assemblage de tout le code écrit à ce jour et en l'appliquant à un petit exemple, clarifier:











Commentaires récents