WordPress のオブジェクト指向プログラミングの詳細: 制御構造 II

王林
リリース: 2023-09-02 12:14:01
オリジナル
536 人が閲覧しました

WordPress のオブジェクト指向プログラミングの詳細: 制御構造 II

このシリーズ全体をご覧になっている方は、オブジェクト指向プログラミングの概念を初心者の観点から考察していることをご存知でしょう。

具体的には、このトピックは、パラダイムと、これらの概念を WordPress のコンテキストに適用する方法を理解したい人を対象としています。ただし、オブジェクト指向プログラミングと WordPress の使用を開始する前に、次のことを行う必要があります。 PHP が提供する基本を使用する 機能が基礎を築きます。

最終的には、WordPress プラグインを作成して、オブジェクト指向プログラミングの実践的な例を作成することに取り組みます。しかし、その前に、話し合う必要があることがいくつかあります。

このシリーズの各記事は前の記事に基づいているため、このシリーズを初めて読む場合は、以前の記事を確認することをお勧めします。一方、オブジェクト指向プログラミングに精通している場合は、これらのアイデアを実際に適用し始めるときに、このシリーズを再読するとよいでしょう。

これまで、次のトピックについて説明してきました。

    ###導入### ###コース### ###タイプ###
  1. 制御構造: 条件文
  2. この記事では、PHP が提供するさまざまなタイプのループを見て、制御構造についての説明を終了します。
  3. 制御構造のレビュー
  4. 前回の記事を読んだ方は、「制御構造」とは、数値に基づいてプログラム全体のコードを変更できるようにする言語 (この場合は PHP) によって提供される構造を指すことを覚えているでしょう。状態。

前回の記事では、条件ステートメントを使用してこれを行う方法について説明しました。条件ステートメントを使用すると、プログラムが条件に依存するようになります (たとえば、変数が設定されているか、条件が true かどうかなど)。 。

###サイクル###

しかし、私たちができる制御の種類はこれだけではありません。条件に加えて、データセットを反復 (またはループ) して、データセット内の各項目に対してアクションを実行することもできます。データの追加、データの削除、データの表示、データの並べ替えなどを行うことができます。

たとえば、一連のデータ (おそらく 10 件の投稿) があり、各投稿のタイトルと日付をループして出力したいとします。ループを使用するとこれが可能になります。

何をしたいとしても、PHP にはデータ セットを反復処理できる 4 種類のループが用意されています。この記事では、オブジェクト指向コードの作成を開始するときに別の制御構造のセットを使用できるように、各例とそれぞれの微妙な違いについて説明します。

for

ループ

コードの記述方法の性質により、

for

ループはループの中で最も複雑であると考えられます。その流れは少し不自然です。

通常、各命令が 1 行に設定されるようにコードを 1 行ずつ記述することに慣れていますが、for ループでは少し異なるアプローチをとります。まず、基本的な例を紹介し、そのさまざまな側面を説明してから、より詳細なアプローチを見ていきます。

これは、10 まで数えて各数値を画面に表示する基本的な例です。 リーリー ループの最初の行 (for

ステートメントの後の括弧内) で、次の操作を実行します。

変数 $i

を初期化し、ゼロに設定します

$i の場合に実行を継続する条件を設定します

各反復後に
    $i
  • を値 1 だけインクリメントします (後置インクリメント演算子を使用)
  • ループ本体では、PHP の
  • echo 関数を使用して、$i
  • の現在の値を出力するだけです。ループが命令を処理すると、画面に 0 ~ 9 が表示されます (ゼロから実行しており、
  • $i が 10 未満であるため)。
  • コードを読むテクニックは人によって異なるため、私がこれから推奨する戦略があなたにとって最適であるとは限りませんが、この種のループを読むとき、私は通常次のように読みます:

$i は 0 から始まり、$i が 10 未満の場合、ループ本体が実行され、$i が 1 ずつ増加します。 問題は、$i が任意の値で開始でき、任意の数値までカウントでき、任意の値ずつ増加できることです。

for

ループで行う作業が増えるほど、パフォーマンスを最適化できるものが見つかる可能性が高くなります。ただし、現時点では 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 );
ログイン後にコピー

比较清楚,对吧?

因此,让我们设置一个非常基本的示例,其中创建一个数组并仅用偶数填充它。为此,我们需要:

  • 保存数字的数组
  • 一个变量,用于保存我们迭代前 100 个偶数的次数

话虽如此,我们可以将代码设置为如下所示:

$i = 1;
$even_numbers = array();

do {

    if ( 0 === ( $i % 2 ) ) {
        $even_numbers[] = $i;
    }
    
    $i++;

} while ( $i <= 100 );
ログイン後にコピー

最后,与其余循环一样,您可以通过以下方式读取这些类型的循环:

次のワークブロックを実行し、以下の条件が満たされるかどうかを確認します。もしそうなら、仕事を続けてください。
###他に何か?

do ループに関しては、コレクションを使用している場合は、処理する前にコレクション が空でないことを確認する必要があります。条件が true の場合 ループ ブロック内のコードを実行する前。これにより、空のデータセットを処理しようとするとエラーが発生する可能性があります。 もちろん、これを実行する予定がある場合は、他のループの 1 つをこの種の操作に対して最適化する方がよい可能性があります。

do

ループは、一連のデータがある場合、または 実行する必要があることがわかっている手順を実行する場合にのみ、実行する必要がある実行回数を示すために使用します。状態を確認する前に少なくとも 1 回は行ってください。 ###次は何ですか? これらにより、関数、プロパティ、スコープ、およびオブジェクト指向プログラミングのその他の基本的な側面について説明するために必要なすべてのことが説明されました。

このシリーズで PHP プログラミングの基本の一部を多かれ少なかれカバーしたと思われる方のために、次の記事ではもう少し高度な領域について説明していきます。

以上がWordPress のオブジェクト指向プログラミングの詳細: 制御構造 IIの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!