>  기사  >  백엔드 개발  >  WordPress의 객체 지향 프로그래밍에 대한 심층 분석: 제어 구조 II

WordPress의 객체 지향 프로그래밍에 대한 심층 분석: 제어 구조 II

王林
王林원래의
2023-09-02 12:13:06524검색

WordPress의 객체 지향 프로그래밍에 대한 심층 분석: 제어 구조 II

전체 시리즈를 따라오셨다면 우리가 초보자의 관점에서 객체 지향 프로그래밍의 개념을 보고 있다는 것을 아실 것입니다.

특히, 우리는 패러다임에 익숙해지고 WordPress의 맥락에서 이러한 개념을 적용하는 방법을 익히고 싶은 사람들을 위해 이 주제를 살펴보고 있습니다. 그러나 객체 지향 프로그래밍과 WordPress 작업을 시작하기 전에 먼저 준비해야 할 사항이 있습니다. PHP Base가 제공하는 기본 기능입니다.

궁극적으로는 워드프레스 플러그인을 만들어 객체지향 프로그래밍의 실제적인 예를 만드는 작업을 진행합니다. 하지만 그 전에 먼저 논의해야 할 몇 가지 사항이 있습니다.

이 시리즈를 처음 읽는 경우 이 시리즈의 각 기사가 이전 기사를 기반으로 작성되므로 이전 기사를 확인하는 것이 좋습니다. 반면에 객체 지향 프로그래밍에 더 익숙하다면 이러한 아이디어를 실제로 적용하기 시작할 때 이 시리즈를 다시 방문하는 것이 좋습니다.

지금까지 우리는 다음 주제에 대해 논의했습니다.

  1. 소개
  2. 강좌
  3. 유형
  4. 제어 구조: 조건문

이 글에서는 PHP가 제공하는 다양한 유형의 루프를 살펴보며 제어 구조에 대한 논의를 마무리하겠습니다.

제어 구조 검토

이전 기사를 읽으면 "제어 구조"가 숫자를 기반으로 프로그램 전체에서 코드를 수정할 수 있도록 하는 언어(이 경우 PHP)에서 제공하는 구조를 의미한다는 것을 기억하실 것입니다. 상태.

이전 기사에서는 프로그램이 조건(예: 변수가 설정된 경우, 조건이 true인 경우 등)에 따라 작동하도록 하는 조건문을 사용하여 이를 수행하는 방법을 살펴보았습니다.

루프

하지만 이것이 우리가 가진 유일한 제어 유형은 아닙니다. 조건 외에도 데이터 세트를 반복(또는 반복)하여 데이터 세트의 각 항목에 대해 조치를 취할 수 있습니다. 데이터 추가, 데이터 삭제, 데이터 표시, 데이터 정렬 등을 수행할 수 있습니다.

예를 들어, 10개의 게시물과 같은 데이터 세트가 있고 각 게시물의 제목과 날짜를 반복하여 인쇄하려고 한다고 가정해 보겠습니다. 루프를 사용하면 이를 수행할 수 있습니다.

무엇을 하든 PHP는 데이터 세트를 반복할 수 있는 네 가지 유형의 루프를 제공합니다. 이 기사에서는 객체 지향 코드 작성을 시작할 때 다른 제어 구조 세트를 사용할 수 있도록 각 예제와 각 예제의 미묘한 차이를 살펴보겠습니다.

for 루프

코드 작성 방식의 특성으로 인해 for 루프는 종종 가장 복잡한 루프로 간주됩니다. 흐름이 좀 부자연스럽게 읽힌다.

일반적으로 우리는 각 명령어가 한 줄에 설정되도록 코드를 한 줄씩 작성하는 데 익숙합니다. 그러나 for 루프의 경우 약간 다른 접근 방식을 사용합니다. 먼저 기본적인 예제를 공유하고 다양한 측면을 살펴본 다음 좀 더 자세한 접근 방식을 살펴보겠습니다.

다음은 10까지 세고 각 숫자를 화면에 표시하는 기본 예입니다.

으아악

루프의 첫 번째 줄(for 문 뒤의 괄호 안)에서 다음을 수행합니다.

  • 변수를 초기화하고 $i 0으로 설정하세요
  • 다음 경우에 계속 실행되도록 조건을 설정합니다. $i
  • 증분 $i 각 반복 후 값 1씩(후위 증분 연산자 사용)

루프 본문에서는 PHP의 echo 함수를 사용하여 echo 函数来打印 $i 的当前值。当循环处理指令时,我们将在屏幕上看到 0 - 9 的打印结果(因为我们从零开始运行,而 $i의 현재 값을 인쇄합니다. 루프가 명령을 처리할 때 화면에 0 - 9가 인쇄되는 것을 볼 수 있습니다(왜냐하면 우리는 0에서 실행 중이고

는 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 );

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

다음 작업 블록을 실행한 후 다음 조건이 true인지 확인합니다. 그렇다면 일을 계속하십시오.

다른 건 없나요?

루프의 경우 컬렉션을 사용하는 경우 조건이 true인지 확인하기 전에 루프 블록의 코드를 실행하므로 컬렉션을 처리하기 전에 컬렉션이 do비어 있지 않은지 확인해야 합니다. 빈 데이터 세트를 처리하려고 하면 오류가 발생할 수 있습니다.

물론, 이 작업을 수행할 계획이라면 다른 루프 중 하나가 이런 종류의 작업에 더 잘 최적화될 수 있습니다.

루프에서

조건을 사용하여 데이터 집합이 있거나 확인하기 전에 적어도 한 번은 수행해야 하는 알고 절차를 수행하는 경우 수행해야 하는 실행 횟수를 나타냅니다. do

다음은 무엇인가요?

이를 통해 객체 지향 프로그래밍의 함수, 속성, 범위 및 기타 기본 측면에 대한 논의를 시작하기 위해 수행해야 할 모든 내용을 정리했습니다.

이 시리즈가 PHP 프로그래밍의 기본 사항 중 일부를 어느 정도 다루었다고 생각하신 분들을 위해 다음 기사에서는 좀 더 고급 영역으로 이동하기 시작하겠습니다.

위 내용은 WordPress의 객체 지향 프로그래밍에 대한 심층 분석: 제어 구조 II의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.