Maison > Article > développement back-end > Une plongée approfondie dans la programmation orientée objet dans WordPress : Control Structures II
Si vous avez suivi l'intégralité de notre série, vous savez sans doute que nous examinons les concepts de programmation orientée objet du point de vue d'un débutant.
Plus précisément, nous examinons ce sujet pour ceux qui souhaitent se familiariser avec le paradigme et comment appliquer ces concepts dans le contexte de WordPress. Cependant, avant de pouvoir commencer à travailler avec la programmation orientée objet et WordPress, nous devons définir la fonctionnalité de base fournie par PHP Base.
En fin de compte, nous travaillons sur la création d'un exemple pratique de programmation orientée objet en créant un plugin WordPress. Mais avant cela, il y a quelques points dont nous devons discuter.
Si c'est la première fois que vous lisez cette série, je vous recommande de consulter les articles précédents, car chaque article de cette série s'appuie sur l'article précédent. Si, en revanche, vous êtes plus familier avec la programmation orientée objet, vous souhaiterez peut-être revoir cette série lorsque nous commencerons à appliquer ces idées dans la pratique.
Jusqu'à présent, nous avons discuté des sujets suivants.
Dans cet article, nous conclurons notre discussion sur les structures de contrôle en examinant les différents types de boucles fournies par PHP.
Si vous avez lu l'article précédent, alors vous vous souviendrez que les « structures de contrôle » font référence aux structures fournies par le langage (dans notre cas PHP) qui nous permettent de modifier le code tout au long du programme en fonction de nombres. condition.
Dans l'article précédent, nous avons vu comment procéder en utilisant des instructions conditionnelles, qui forceront le programme à agir en fonction d'une condition (par exemple, si une variable est définie, si la condition est vraie, etc.).
Mais ce n'est pas le seul type de contrôle dont nous disposons. En plus des conditions, nous sommes également en mesure de parcourir (ou de boucler) l'ensemble de données afin de pouvoir prendre des mesures sur chaque élément de l'ensemble de données. Nous pouvons ajouter des données, supprimer des données, afficher des données, trier des données, etc.
Par exemple, disons que nous avons un ensemble de données, peut-être 10 publications, et que nous voulons boucler et imprimer le titre et la date de chaque publication. Les boucles nous permettent de le faire.
Peu importe ce que vous voulez faire, PHP propose quatre types de boucles qui nous permettent de parcourir l'ensemble de données. Dans cet article, nous examinerons chaque exemple et certaines des nuances de chacun afin que vous puissiez utiliser un autre ensemble de structures de contrôle lorsque vous commencerez à écrire du code orienté objet.
for
Boucle En raison de la nature de la manière dont le code est écrit, for
Les boucles sont souvent considérées comme les boucles les plus complexes. Le déroulement de celui-ci se lit un peu anormalement.
Normalement, nous avons l'habitude d'écrire du code ligne par ligne pour que chaque instruction soit définie sur une ligne cependant, pour les boucles for
, nous avons une approche légèrement différente ; Tout d’abord, je vais partager un exemple de base et nous en couvrirons différents aspects, puis nous examinerons une approche plus détaillée.
Voici un exemple de base qui comptera jusqu'à 10 et affichera chaque numéro à l'écran :
for ( $i = 0; $i < 10; $i++ ) { echo $i; }
Dans la première ligne de la boucle (à l'intérieur des parenthèses après l'instruction for
), nous procédons comme suit :
$i
et mettez-la à zéro$i
$i
de la valeur 1 après chaque itération (en utilisant l'opérateur post-incrémentation) Dans le corps de la boucle, nous utilisons simplement la fonction echo
de PHP pour imprimer la valeur actuelle de echo
函数来打印 $i
的当前值。当循环处理指令时,我们将在屏幕上看到 0 - 9 的打印结果(因为我们从零开始运行,而 $i
. Au fur et à mesure que la boucle traite les instructions, nous verrons 0 à 9 imprimés à l'écran (car nous partons de zéro et
Différentes personnes ont des techniques différentes pour lire le code, donc la stratégie que je suis sur le point de recommander n'est peut-être pas la meilleure pour vous, mais quand je lis ce type de boucles, je lis généralement comme ceci :
$i commence à zéro, lorsque $i est inférieur à 10, le corps de la boucle est exécuté, puis $i est incrémenté de 1.
$i
Le problème est que
for
Plus nous travaillons avec la boucle
foreach
循环foreach
循环与 for 循环类似,因为它们迭代数据集,但它们是按顺序执行的。这意味着没有简单的方法可以迭代列表中的每一项(例如两个项目)(例如,可以使用 $i + 2
in for
循环)。
这种类型的循环可以说是最具可读性的。对于我们的示例,假设我们有一个数组,并且数据数组包含以下名称:Alpha、Bravo、Charlie、Delta、Echo 和 Foxtrot。数组的名称存储在名为 $names
的变量中。
在这种情况下,我们可以设置一个 foreach
循环来迭代名称并将每个名称显示在屏幕上,如下所示:
$names = array( 'Alpha', 'Bravo', 'Charlie', 'Delta', 'Echo', 'Foxtrot' ); foreach ( $names as $name ) { echo $name; }
设置非常简单,不是吗?
正如我们在上一节中分享了一种读取初始 for
循环的方法一样,您可以通过以下方式读取 foreach
循环:
对于名称集合中的每个名称,将其显示在屏幕上。
或者,也许更一般地说:
对于集合中的每个元素,将其显示在屏幕上。
foreach
循环还有另一个方面,我们可能会在本系列后面更详细地介绍,但主要思想是,如果您熟悉关联数组,即数组使用键进行索引并且具有关联值,您可以设置 foreach
循环来检索循环每次迭代的每个键和值。
例如,假设我们有以下关联数组:
$heroes = array( 'alien' => 'Superman', 'human' => 'Batman' );
当使用这样的关联数组时,您还可以设置一个 foreach
循环,如下所示:
foreach ( $heroes as $type => $name ) { echo $name . ' is a ' . $type; }
这将导致输出读取诸如“超人是外星人”之类的内容,因为“超人”是值,“外星人”是他的类型(或他的键)。
此循环的更通用形式如下:
foreach ( $collection as $key => value ) { // Work goes here }
没什么特别复杂的。
while
循环介绍了 for
循环的变体后,是时候将我们的注意力转向 while
循环了,其中有两种变体(尽管它们的名称不同:while
循环和 do
循环),但它们只有很小的区别。
但是在我们了解它们有何不同之前,我们先来看看 while
循环,它的基本格式、如何使用它以及它与之前的 for
循环。
首先,while
循环的基本格式如下:
while ( condition ) { // do work }
请注意,此循环与之前的循环不同,它接受条件作为初始语句的一部分(这就是我们在上一篇文章中介绍条件的原因)。
循环的工作原理是首先检查条件是否为真,执行循环体中的代码块,然后再次检查条件。这意味着 while
循环可以执行任何工作单元,只要指定的条件计算结果为 true。
所以,当然,您可以迭代数字列表,运行数据集合,但您也可以在布尔值仍然为 true 的情况下执行某些操作。一旦标志达到 false,则 while 循环将终止。
让我们看一个从数组中弹出元素的示例。假设初始数组有 100 个元素,我们将一直这样做,直到数组剩下 50 个元素:
while ( 50 !== count ( $elements ) ) { array_pop( $elements ); }
这里,条件将继续评估为 true,直到 $elements
数组中的项目数减少到 50 项。
正如我们对之前的循环所做的那样,这是读取 while
循环的一种方法:
当这个条件成立时,执行以下代码。
当然,代码看起来就是这样,不是吗?
do
循环最后,do
循环几乎完全类似于 while
循环,只不过在检查条件之前至少会迭代一次。
在看示例之前,先介绍一下 do
循环的基本结构:
do { // do work } while ( condition );
比较清楚,对吧?
因此,让我们设置一个非常基本的示例,其中创建一个数组并仅用偶数填充它。为此,我们需要:
话虽如此,我们可以将代码设置为如下所示:
$i = 1; $even_numbers = array(); do { if ( 0 === ( $i % 2 ) ) { $even_numbers[] = $i; } $i++; } while ( $i <= 100 );
最后,与其余循环一样,您可以通过以下方式读取这些类型的循环:
Exécutez le bloc de travail suivant, puis vérifiez si la condition suivante est vraie. Si c'est le cas, continuez votre travail.
En ce qui concerne les boucles do
, si vous utilisez une collection, vous devez vous assurer que la collection n'est pas vide avant de la traiter car elle exécutera le code dans le bloc de boucle avant de vérifier si la condition est vraie. Cela peut provoquer des erreurs si vous essayez de traiter un ensemble de données vide.
Bien sûr, si vous envisagez de faire cela, l'une des autres boucles sera peut-être mieux optimisée pour ce genre d'opération.
Utilisez uniquement une condition dans une boucle pour indiquer le nombre d'exécutions qui doivent être effectuées si vous disposez d'un ensemble de données ou si vous effectuez une procédure dont vous savez do
doit être effectuée au moins une fois avant de vérifier.
Avec ceux-ci, nous avons présenté tout ce que vous devez faire pour commencer à discuter des fonctions, des propriétés, des portées et d'autres aspects fondamentaux de la programmation orientée objet.
Pour ceux d'entre vous qui pensent que cette série a plus ou moins couvert certaines des bases de la programmation PHP, nous commencerons à aborder un territoire légèrement plus avancé dans le prochain article.
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!