지금까지 이 시리즈를 시청해 오신 분들은 우리가 특히 초보자의 관점에서 객체 지향 프로그래밍을 보고 있다는 것을 알고 계실 것입니다.
즉, 우리는 이 패러다임을 사용하여 시작하는 방법을 찾고 있는 사람들을 위해 이 주제에 접근할 뿐만 아니라 언어를 구성하는 모든 다양한 기능과 궁극적으로 PHP 구현을 살펴보고 있음을 의미합니다. 객체 지향 프로그래밍의 맥락에서 사용됩니다.
또한 우리는 이 모든 것을 WordPress의 맥락에서 수행하므로 이 시리즈가 끝날 때쯤에는 이 모든 것을 실제 사례에서 사용하는 방법에 대한 실제적인 적용을 볼 수 있습니다. p>
이 시리즈의 기사를 처음 읽는 경우 이 시리즈의 각 기사가 이전 기사를 기반으로 하므로 이전 기사를 확인하는 것이 좋습니다.
지금까지 우리는 다음 내용을 다루었습니다:
이 글에서는 제어 구조에 대해 논의하겠습니다.
"제어 구조"는 으흠, 다양한 요소를 기반으로 프로그램 전체에서 코드 흐름을 제어하는 방법을 설명하는 멋진 용어입니다.
예를 들어, 특정 명령어 세트를 실행하고 싶지만 한 변수가 설정되거나 다른 명령어 세트가 다른 변수를 설정할 때 작업을 수행하고 싶다고 가정해 보겠습니다.
또는 데이터 집합이 있고 각 값을 반복하거나 특정 값을 설정하거나 특정 값을 생성한다고 가정해 보세요.
어떤 경우이든 이를 수행하는 방법은 제어 구조를 사용하는 것입니다. 이 기사의 나머지 부분에서는 조건부 및 루프라는 두 가지 유형의 제어 구조를 소개합니다.
조건문과 루프는 우리가 논의할 제어 구조 유형이지만 각 유형의 하위 집합도 있습니다.
예를 들어 조건문은 다음과 같습니다.
if/then
성명switch/case
성명반면에 루프에는 몇 가지 다른 변형이 있습니다.
for
foreach
do
while
일부에게는 이것이 새로운 구성일 수 있지만 이전 기사에서 기본 사항을 다루었으므로 앞으로 나아가는 데 필요한 모든 것이 있습니다.
제 생각에는 조건문은 다른 많은 유형의 프로그래밍 문보다 문장과 더 유사하기 때문에 이해하기 가장 쉬운 문입니다. 예를 들어 문자 그대로 "이 조건이 true이면 이렇게 하고, 그렇지 않으면 이렇게 하세요."를 의미하는 경우입니다.
물론, 조치를 취하기로 결정하기 전에 다른 조건도 확인해야 한다면 상황이약간 복잡해지지만 요점은 여전히 동일합니다. 그러므로 먼저 PHP에서 제공하는 두 가지 조건부 변형 중 하나를 살펴보겠습니다.
if/then
이며 일반적으로 다음과 같이 작성되는 것을 볼 수 있습니다. if/else
으아악
즉, 이
condition 라인은 무엇인가요? 둘째, 통제 구조는 어떤 조치를 취할 수 있는가?
먼저condition은 부울 표현식으로 평가할 수 있는 모든 명령문을 나타냅니다. 합리적인? 간단히 말해서 condition은 로 평가될 수 있는 모든 명령문을 나타냅니다. true
或 false
$is_active
$total_count
가 true로 설정되면 $is_active
设置为 true,那么我们会将 $total_count
加一;否则,我们会将 $total_count
가 1 증가하고 그렇지 않으면
코드는 다음과 같습니다.
으아악
$total_count
将加一,因为 $is_active
위의 예에서
는 1씩 증가합니다. $is_active
设置为 false
가 false
로 설정되어 있다고 가정합니다. $total_count
将减一,因为 $is_active
으아악
가 false로 평가되므로 가 1씩 줄어듭니다.
이제 다음 예를 살펴보기 전에 이것이 매우 사소한 예라는 점을 이해하는 것이 중요합니다. 이 예제의 목적은 복잡한 연산을 수행하여 이를 조건부 구문으로 결합하는 방법을 보여주는 것이 아니라 조건부 구문을사용
하는 방법을 보여주는 것입니다. 🎜 🎜이 시리즈에서 플러그인 작성을 시작하는 부분에 이르면 실제 애플리케이션에서 더 복잡한 표현을 사용하는 방법을 알게 될 것입니다. 🎜话虽如此,让我们再看一个 if/then 语句的示例。在此示例中,我们将查看 if/elseif/else
。首先,我们假设 $is_active
设置为 true,并且 $total_count
设置为 10。
<?php $is_active = false; $total_count = 10; if ( $is_active ) { $total_count = 1; } else if ( $total_count >= 10 ) { $total_count = $total_count + 1 } else { $total_count = $total_count - 1; }
上面的代码可以这样理解:
$is_active
设置为 true,则将 $total_count
设置为 1。 $is_active
不正确。$total_count
大于或等于 10,则将 $total_count
加 1。 $total_count
等于 10,因此我们将 $total_count
增加到 11。$total_count
不大于或等于 10,那么我们会将 $total_count
减 1。当上面示例中的代码块执行完毕时,$total_count
将等于 11。
有道理吗?
这就是我们称之为控制结构的原因:这些语句(或评估)使我们能够根据某些条件确定要运行哪些代码。
对于那些已经编程了一段时间的人来说,您应该熟悉使用 &&
和 ||
等运算符的更复杂的表达式。我们最终会讨论这个问题,但不是在本文中。
总而言之,这是我知道的一个主题,我们将讨论该主题,但不是今天。
对于那些更有编程经验的人来说,您可能会熟悉三元运算符。
我们不会在这个特定的系列文章中讨论这一点,因为它超出了我们想要涵盖的范围;但是,如果您喜欢冒险,并且正在寻找一种更简洁的方法来编写简单的 if/else
语句,请查看 PHP 手册中的三元运算符。
switch/case
语句话虽如此,在继续下一个主题之前,我们还需要了解另一种类型的条件条件。
这个特定的结构仍然属于条件语句;但是,我认为您会发现它的使用频率低于其 if/else
对应项。
如标题所示,这称为 switch/case
语句。尽管我个人认为该语言使其变得更加复杂,但控制流通过评估的方式与我们已经看到的没有太大不同。
就像我们对 if/else
语句所做的那样,我们首先看一下 switch/case
的结构,然后我们看一下几个简单的例子。
<?php switch ( condition ) { case 'value': // do action break; case 'another value': // do a different action break; default: // perform a default action break; }
关于这种特定类型的条件,首先要注意的是,评估发生在一个位置:在 switch
语句旁边的代码块顶部。 p>
这里,评估发生一次,然后每个后续 case
语句决定采取哪个操作。我们将讨论的每个语句中还包含一个 break
语句,并且在我们将要讨论的底部还有一个 default
代码块也在文章末尾进行讨论。
但在我们执行任何操作之前,让我们设置一个稍微更实际的示例,说明基本 switch/case
语句的样子。
假设我们有一个值 $first_name
,然后我们希望根据此人的名字采取特定的操作过程。在此示例中,我们将根据某人的名字设置其电子邮件地址。如果我们无法识别该人的名字,那么我们会将值设置为 null
。
当然,这是一个有点做作的例子,但它会证明这一点:
<?php $persons_name = 'Tom'; $email_address = ''; switch ( $persons_name ) { case 'Tom': $email_address = 'tom@acme-server.com'; break; case 'David': $email_address = 'david@acme-server.com'; break; default: $email_address = NULL; break; }
让我们看一下上面示例中的控制流程:
$persons_name
定义为“Tom”,并将 $email_address
初始化为空字符串。$persons_name
传递给 switch 语句进行评估。$persons_name
。$persons_name
的值,因此 $email_address
将设置为“tom@acme-server.com”李>
如果我们将“David”作为 $persons_name
传递,则 $email_address
将设置为“david@acme-server.com”。 p>
接下来,如果我们要传递除“Tom”或“David”之外的任何其他名称,则 $email_address
将设置为 NULL
.还需要注意的是 switch/case
区分大小写。这意味着如果您传递“tom”而不是“Tom”,那么它们将被视为不同的情况。
最后,请注意每个 case
以 break
语句结尾。这很重要,因为 break
指示代码跳出 switch/case
语句并继续处理接下来出现的任何代码。
了解这一点非常重要:如果您忘记了 break 语句,那么它将立即落入下一个 case 语句,这显然会产生不稳定的结果(例如设置错误的 $email_address
)。
您可以利用这一点来发挥自己的优势的一个示例如下:
<?php $persons_name = 'Tom'; $email_address = ''; switch ( $persons_name ) { case 'tom': case 'Tom': $email_address = 'tom@acme-server.com'; break; case 'David': $email_address = 'david@acme-server.com'; break; default: $email_address = NULL; break; }
在上面的示例中,我们为“Tom”定义了小写或首字母大写的情况,并演示了代码如何进入下一个 case
语句。
但是有一个更好的方法可以让它更加防弹:
<?php $persons_name = 'Tom'; $email_address = ''; switch ( strtolower( $persons_name ) ) { case 'tom': $email_address = 'tom@acme-server.com'; break; case 'david': $email_address = 'david@acme-server.com'; break; default: $email_address = NULL; break; }
请注意,这需要 PHP 函数 strtolower
来强制传入的 $persons_name
完全小写。这使我们能够进一步完善我们的案例陈述。
在本文中,我们研究了 PHP 中可用的两组控制结构中的第一组。不,这些并不是面向对象编程的明确组成部分,但在我们真正开始讨论该范例的更多基础方面之前,我们需要了解允许我们编写面向对象代码的所有细节。
为此,我们将在下一篇文章中通过查看循环来继续讨论控制结构。
之后,我们就可以将注意力转向函数了。对于那些熟悉过程式编程的人来说,函数并不是什么新鲜事。但是,如果您是面向对象编程的新手,那么有许多因素可以将它们与过程编程中的使用方式区分开来。
这就是下一组文章的路线图。与往常一样,欢迎提供反馈,我期待在下一篇文章中继续我们的讨论。
위 내용은 WordPress의 객체 지향 프로그래밍: 제어 구조 I의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!