Programmation orientée objet dans WordPress Structures de contrôle I

Pour ceux d'entre vous qui ont suivi la série jusqu'à présent, alors vous savez que nous examinons la programmation orientée objet spécifiquement du point de vue d'un débutant..

Cela signifie que nous abordons le sujet non seulement pour ceux qui cherchent à apprendre comment utiliser ce paradigme, mais également pour toutes les fonctionnalités de PHP qui composent le langage et qui sont finalement utilisées dans le contexte. contexte de programmation orientée objet.

De plus, nous faisons tout cela dans le contexte de WordPress afin que, à la fin de la série, nous puissions voir comment une application pratique de la façon dont tout cela peut être utilisé dans un exemple du monde réel.

Si vous lisez un article de la série pour la première fois, je vous recommande fortement de consulter les articles précédents, car chaque article de cette série reprend celui qui le précède..

Jusqu'à présent, nous avons couvert les éléments suivants:

  1. Une introduction
  2. Des classes
  3. Les types

Dans cet article, nous allons parler de structures de contrôle.

Que sont les structures de contrôle??

"Structures de contrôle" est un terme sophistiqué qui décrit comment nous pouvons, ahem, contrôler la manière dont le code circule dans notre programme en fonction d'un certain nombre de facteurs.

Par exemple, disons que nous voulons progresser dans un certain ensemble d’instructions, mais que vous voulez faire quelque chose si une variable est définie, ou un autre ensemble d'instructions d'une autre variable est défini.

Ou bien, supposons que vous souhaitiez lire en boucle chaque valeur, définir certaines valeurs ou même créer certaines valeurs avec un ensemble de données que vous souhaitez lire en boucle..

Quoi qu’il en soit, vous utilisez des structures de contrôle. Dans la suite de cet article, nous aborderons deux types de structures de contrôle: les conditions et les boucles..

Bien que les conditions et les boucles soient les types de structures de contrôle que nous allons examiner, il existe des sous-ensembles de chaque.

Par exemple, les conditionnels ont:

  • si donc des déclarations
  • commutateur / boîtier des déclarations


Les boucles, en revanche, ont quelques autres variantes:

  • pour
  • pour chaque
  • faire
  • tandis que

Bien que cela puisse être une nouvelle construction pour certains d'entre vous, nous avons déjà couvert les bases dans les articles précédents, nous avons donc tout ce dont nous avons besoin pour aller de l'avant.

Expressions conditionnelles

À mon avis, les énoncés conditionnels sont parmi les plus faciles à comprendre car ils se lisent davantage comme des phrases que de nombreux autres types d’énoncés de programmation. Par exemple, si vous dites littéralement "si cette condition est vraie, effectuez cette action; sinon, effectuez cette action".

Bien sûr, il obtient un peu plus compliqué que cela si vous avez, disons, quelques autres conditions à vérifier avant de décider de la marche à suivre, mais l’essentiel reste le même.

Cela dit, commençons par regarder l'une des deux variantes de conditionnelles offertes par PHP..

si donc Les déclarations

Comme mentionné précédemment, l'énoncé conditionnel le plus fondamental est de la forme sinon, et vous le verrez généralement écrit comme ceci:

Bien sûr, cela n'explique toujours pas vraiment comment fonctionne la structure de contrôle, n'est-ce pas? Je veux dire, bien sûr, cela fournit un peu de squelette pour savoir comment le regarder, mais cela laisse plus à désirer.

A savoir, c'est quoi état ligne? Deuxièmement, quels sont les plans d’action que la structure de contrôle peut adopter??

Premièrement le état fait référence à toute déclaration pouvant être évaluée comme une expression booléenne. Avoir un sens? Tout simplement, état représente toute déclaration qui peut être évaluée comme vrai ou faux.

Ainsi, par exemple, supposons que nous ayons deux valeurs:

  1. $ is_active
  2. $ total_count

Ce sont évidemment des valeurs quelque peu génériques, mais disons que si $ is_active est mis à true, alors nous allons incrémenter la $ total_count par un; sinon, nous soustrayons le $ total_count par un. 

Voici comment cela peut apparaître dans le code:

Dans l'exemple ci-dessus, $ total_count sera augmenté par un parce que $ is_active évalue à vrai.

Alternativement, disons $ is_active est réglé sur faux.

Dans ce Exemple, $ total_count sera diminué par un parce que $ is_active évalue à faux.

Avant d'examiner le prochain exemple, il est important de comprendre qu'il s'agit d'exemples extrêmement triviaux. Le but de ces exemples n'est pas de montrer comment prendre des opérations complexes et de les combiner dans les constructions conditionnelles, mais plutôt comment utilisation les constructions conditionnelles.

Quand nous arrivons à la partie de la série qui nous a commencé à écrire un plugin, vous verrez alors comment nous pouvons utiliser des expressions plus élaborées dans une application pratique.

Cela dit, examinons un autre exemple d’instructions if / then. Dans cet exemple, nous allons jeter un oeil à si / elseif / else. Pour commencer, supposons que $ is_active est réglé sur true et $ total_count est mis à 10.

= 10) $ total_count = $ total_count + 1 sinon $ total_count = $ total_count - 1; 

Le code ci-dessus peut être lu comme ceci:

  • Si $ is_active est défini sur true, puis définissez le $ total_count à une. $ is_active ce n'est pas vrai.
  • Sinon, si le $ total_count est supérieur ou égal à 10, puis incrémenter le $ total_count par 1. Le $ total_count est égal à 10, nous allons donc incrémenter la $ total_count à 11.
  • Si $ total_count n'était pas supérieur ou égal à 10, alors nous décrémentions la $ total_count par un.

Au moment où le bloc de code a fini de s'exécuter dans l'exemple ci-dessus, $ total_count sera égal à 11.

Avoir du sens? 

C’est pourquoi nous appelons ces structures de contrôle: Ces déclarations (ou évaluations) nous permettent de déterminer le code à exécuter en fonction de certaines conditions..

Pour ceux qui programment depuis un moment, vous connaissez les expressions plus complexes utilisant des opérateurs tels que && et || etc. Nous y reviendrons éventuellement, mais pas dans cet article.

Tout cela dit, c'est un sujet que je connais et que nous allons aborder, mais pas aujourd'hui..

Rien d'autre?

Pour ceux d'entre vous qui sont plus expérimentés en programmation, alors vous êtes probablement familier avec l'opérateur ternaire.

Nous n'allons pas examiner cela dans cette série d'articles car cela sort du cadre de ce que nous cherchons à couvrir; Cependant, si vous vous sentez aventureux et recherchez un moyen plus concis d'écrire un texte simple, sinon instructions, puis vérifiez l'opérateur ternaire dans le manuel PHP.

commutateur / boîtier Les déclarations

Cela dit, il existe un autre type de conditionnel sur lequel nous devons nous pencher avant de passer au sujet suivant..

Cette construction particulière relève toujours des déclarations conditionnelles; cependant, je dirais que vous le verriez utilisé moins souvent que son sinon homologue.

Comme le titre l'indique, on appelle cela commutateur / boîtier déclaration. Bien que je pense personnellement que le langage rend le processus un peu plus compliqué à suivre, la manière dont le contrôle se déroule dans les évaluations n’est pas très différente de celle que nous avons déjà vue..

Comme nous l'avons fait avec le sinon déclarations, regardons d'abord comment commutateur / boîtier est structuré et ensuite nous allons jeter un oeil à quelques exemples triviaux.

La première chose à noter à propos de ce type de conditionnel particulier est que l’évaluation a lieu à un seul endroit: en haut du bloc de code juste à côté du commutateur déclaration.

Ici, l’évaluation a lieu une fois, puis chacune des suivantes. Cas déclarations est ce qui dicte quelle action est prise. Il y a aussi Pause déclaration incluse avec chacune des déclarations que nous allons discuter, et il y a aussi un défaut bloc de code en bas que nous discuterons à la fin de l'article, ainsi que.

Mais avant de faire cela, installons un exemple un peu plus pratique de ce qu’est un principe de base. commutateur / boîtier déclaration ressemble.

Supposons que nous avons une valeur, $ prenom, et ensuite, nous voulons prendre certaines mesures en fonction du prénom de la personne. Dans cet exemple, nous allons définir l'adresse électronique d'une personne en fonction de son prénom. Si nous ne reconnaissons pas le prénom de la personne, nous allons définir la valeur égale à nul.

Bien sûr, c'est un exemple un peu artificiel, mais cela démontrera le point:

Regardons le flux de contrôle dans l'exemple ci-dessus:

  • Nous définissons un $ nom_personnes comme 'Tom' et nous initialisons le $ email_address comme une chaîne vide.
  • Nous passons ensuite le $ nom_personnes à l'instruction switch pour évaluation.
  • La structure de contrôle évaluera la $ nom_personnes contre chaque valeur spécifiée dans l'instruction case.
  • Comme 'Tom' est la valeur de la $ nom_personnes, puis le $ email_address sera mis à '[email protected]'

Si nous devions passer "David" comme $ nom_personnes puis $ email_address serait mis à '[email protected]'.

Ensuite, si nous devions passer tout autre nom que "Tom" ou "David", alors le $ email_address serait mis à NUL. Il est également important de noter que commutateur / boîtier est sensible à la casse. Cela signifie que si vous deviez passer "tom" au lieu de "Tom", ils seraient alors traités comme des cas différents..

Enfin, notez que chaque Cas se termine par un Pause déclaration. C'est important parce que Pause ordonne au code de sortir du commutateur / boîtier déclaration et continuer à travailler sur tout code vient ensuite.

Il est extrêmement important de comprendre que, si vous oubliez une déclaration de rupture, elle tombera immédiatement au premier plan. suivant déclaration de cas qui peut évidemment avoir des résultats erratiques (tels que la définition de la mauvaise $ email_address).

Voici un exemple où vous pouvez tirer parti de cela à votre avantage:

Dans l'exemple ci-dessus, nous avons défini des cas pour «Tom» lorsqu'il est en minuscule ou que la première lettre est en majuscule et montre comment le code passera à la suivante. Cas déclaration.

Mais il existe un moyen encore plus efficace de le rendre plus sûr:

Notez que cela prend la fonction PHP strtolower afin de forcer l'entrée $ nom_personnes être complètement en minuscule. Cela nous permet d’affiner encore davantage nos déclarations de cas..

Quoi de neuf ensuite?

Dans cet article, nous avons examiné le premier des deux groupes de structures de contrôle disponibles en PHP. Non, ils ne font pas explicitement partie de la programmation orientée objet, mais avant d'aborder de plus près les aspects fondamentaux du paradigme, nous devons comprendre tous les points plus fins qui nous permettent d'écrire du code orienté objet..

À cette fin, nous allons poursuivre cette discussion sur les structures de contrôle dans le prochain article en examinant les boucles.. 

Après cela, nous serons prêts à porter notre attention sur les fonctions. Pour ceux qui sont familiers avec la programmation procédurale, les fonctions ne sont pas nouvelles; Cependant, si vous débutez dans la programmation orientée objet, plusieurs facteurs les différencient de la manière dont elles sont utilisées dans la programmation procédurale..

Voilà donc la feuille de route pour la prochaine série d'articles. Comme d'habitude, les commentaires sont toujours les bienvenus et j'ai hâte de poursuivre notre discussion dans le prochain article..