このシリーズ全体をご覧になっている方は、オブジェクト指向プログラミングの概念を初心者の観点から考察していることをご存知でしょう。
具体的には、このトピックは、パラダイムと、これらの概念を WordPress のコンテキストに適用する方法を理解したい人を対象としています。ただし、オブジェクト指向プログラミングと WordPress の使用を開始する前に、次のことを行う必要があります。 PHP が提供する基本を使用する 機能が基礎を築きます。
最終的には、WordPress プラグインを作成して、オブジェクト指向プログラミングの実践的な例を作成することに取り組みます。しかし、その前に、話し合う必要があることがいくつかあります。
このシリーズの各記事は前の記事に基づいているため、このシリーズを初めて読む場合は、以前の記事を確認することをお勧めします。一方、オブジェクト指向プログラミングに精通している場合は、これらのアイデアを実際に適用し始めるときに、このシリーズを再読するとよいでしょう。
これまで、次のトピックについて説明してきました。
前回の記事では、条件ステートメントを使用してこれを行う方法について説明しました。条件ステートメントを使用すると、プログラムが条件に依存するようになります (たとえば、変数が設定されているか、条件が true かどうかなど)。 。
###サイクル###たとえば、一連のデータ (おそらく 10 件の投稿) があり、各投稿のタイトルと日付をループして出力したいとします。ループを使用するとこれが可能になります。
何をしたいとしても、PHP にはデータ セットを反復処理できる 4 種類のループが用意されています。この記事では、オブジェクト指向コードの作成を開始するときに別の制御構造のセットを使用できるように、各例とそれぞれの微妙な違いについて説明します。
ループ
コードの記述方法の性質により、
forループはループの中で最も複雑であると考えられます。その流れは少し不自然です。
for
ループでは少し異なるアプローチをとります。まず、基本的な例を紹介し、そのさまざまな側面を説明してから、より詳細なアプローチを見ていきます。 これは、10 まで数えて各数値を画面に表示する基本的な例です。
リーリー
ループの最初の行 (
for
変数
$i
$i の場合に実行を継続する条件を設定します
各反復後に
関数を使用して、$i
が 10 未満であるため)。
$i は 0 から始まり、$i が 10 未満の場合、ループ本体が実行され、$i が 1 ずつ増加します。
問題は、$i
が任意の値で開始でき、任意の数値までカウントでき、任意の値ずつ増加できることです。
ループで行う作業が増えるほど、パフォーマンスを最適化できるものが見つかる可能性が高くなります。ただし、現時点では for ループの基本については説明しており、高度なテクニックについてはこの記事の範囲を少し超えています。
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 );
最后,与其余循环一样,您可以通过以下方式读取这些类型的循环:
次のワークブロックを実行し、以下の条件が満たされるかどうかを確認します。もしそうなら、仕事を続けてください。###他に何か?
do ループに関しては、コレクションを使用している場合は、処理する前にコレクション
が空でないことを確認する必要があります。条件が true の場合 ループ ブロック内のコードを実行する前。これにより、空のデータセットを処理しようとするとエラーが発生する可能性があります。
もちろん、これを実行する予定がある場合は、他のループの 1 つをこの種の操作に対して最適化する方がよい可能性があります。
do
ループは、一連のデータがある場合、または 実行する必要があることがわかっている手順を実行する場合にのみ、実行する必要がある実行回数を示すために使用します。状態を確認する前に少なくとも 1 回は行ってください。
###次は何ですか?
これらにより、関数、プロパティ、スコープ、およびオブジェクト指向プログラミングのその他の基本的な側面について説明するために必要なすべてのことが説明されました。
以上がWordPress のオブジェクト指向プログラミングの詳細: 制御構造 IIの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。