搜索
首页后端开发php教程WordPress中的面向对象编程:控制结构I

WordPress中的面向对象编程:控制结构I

对于那些迄今为止一直关注本系列的人来说,您知道我们正在专门从初学者的角度来研究面向对象编程。

这意味着我们不仅针对那些正在研究如何开始使用该范式的人来探讨该主题,而且我们正在研究构成该语言并最终实现的 PHP 的所有各种功能。在面向对象编程的上下文中使用。

此外,我们正在 WordPress 的背景下完成所有这些工作,以便在本系列结束时,我们可以看到如何在现实世界的示例中使用所有这些内容的实际应用。 p>

如果这是您第一次阅读该系列中的文章,那么我强烈建议您查看以前的文章,因为本系列中的每篇文章都建立在之前的文章的基础上。

到目前为止,我们已经介绍了以下内容:

  1. 简介
  2. 课程
  3. 类型

在本文中,我们将讨论控制结构。

什么是控制结构?

“控制结构”是一个奇特的术语,它描述了我们如何,咳咳,根据多种因素控制代码如何流经我们的程序。

例如,假设我们想要执行一组特定的指令,但您想要在设置了一个变量或设置了另一个变量的另一组指令时执行某些操作。

或者假设您有一组数据,您想要循环读取每个值、设置每个特定值,甚至创建特定值。

无论情况如何,执行此操作的方法都是通过使用控制结构。在本文的其余部分中,我们将介绍两种类型的控制结构:条件和循环。

虽然条件和循环是我们将要讨论的控制结构类型,但每种类型都有子集。

例如,条件语句有:

  • if/then 语句
  • switch/case 语句

另一方面,循环还有一些其他变体:

  • for
  • foreach
  • do
  • while

尽管这些对于某些人来说可能是新的构造,但我们已经在之前的文章中介绍了基础知识,因此我们拥有前进所需的一切。

条件语句

在我看来,条件语句是最容易理解的语句,因为它们比许多其他类型的编程语句读起来更像句子。例如,如果您字面意思是“如果此条件为真,则执行此操作;否则,执行此操作。”

当然,如果您在决定采取行动之前还需要检查一些其他条件,那么事情会变得稍微复杂一些,但其要点仍然是相同的。

话虽如此,让我们首先看一下 PHP 提供的两种条件变体之一。

if/then 语句

正如前面提到的,最基本的条件语句的形式是if/else,你通常会看到这样的写法:

<?php

if ( condition ) { 
    // Take on action
} else {
    // Take another action
}

当然,这仍然不能真正解释控制结构是如何工作的,不是吗?我的意思是,当然,它提供了一些如何查看它的框架,但它还有更多不足之处。

也就是说,这个条件行是什么?其次,控制结构可以采取哪些行动方案?

首先,条件指的是任何可以被计算为布尔表达式的语句。合理?简而言之,条件代表任何可以被评估为 truefalse 的语句。

例如,假设我们有两个值:

  1. $is_active
  2. $total_count

这些显然是一些通用值,但假设如果 $is_active 设置为 true,那么我们会将 $total_count 加一;否则,我们会将 $total_count 设置为 true,那么我们会将

加一;否则,我们会将

减一。

代码如下:$total_count 将加一,因为 $is_active

<?php

$is_active = true;
if ( $is_active ) {
    $total_count = $total_count + 1;
} else {
    $total_count = $total_count - 1;
}

在上面的示例中,

将加一,因为 $is_active 设置为 false 计算结果为 true。

或者,假设 $total_count 将减一,因为 $is_active 设置为 false

<?php

$is_active = false;
if ( $is_active ) {
    $total_count = $total_count + 1;
} else {
    $total_count = $total_count - 1;
}

在此示例中, 将减一,因为 的计算结果为 false。

现在,在我们查看下一个示例之前,重要的是要了解这些都是极其琐碎的示例。这些示例的目的不是展示如何进行复杂的操作并将它们组合到条件构造中,而是展示如何

使用🎜条件构造。🎜 🎜当我们进入本系列中开始编写插件的部分时,您将看到如何在实际应用程序中使用更复杂的表达式。🎜

话虽如此,让我们再看一个 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 语句进行评估。
  • 控制结构将根据 case 语句中指定的每个值评估 $persons_name
  • 由于“Tom”是 $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”,那么它们将被视为不同的情况。

最后,请注意每个 casebreak 语句结尾。这很重要,因为 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中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
PHP的目的:构建动态网站PHP的目的:构建动态网站Apr 15, 2025 am 12:18 AM

PHP用于构建动态网站,其核心功能包括:1.生成动态内容,通过与数据库对接实时生成网页;2.处理用户交互和表单提交,验证输入并响应操作;3.管理会话和用户认证,提供个性化体验;4.优化性能和遵循最佳实践,提升网站效率和安全性。

PHP:处理数据库和服务器端逻辑PHP:处理数据库和服务器端逻辑Apr 15, 2025 am 12:15 AM

PHP在数据库操作和服务器端逻辑处理中使用MySQLi和PDO扩展进行数据库交互,并通过会话管理等功能处理服务器端逻辑。1)使用MySQLi或PDO连接数据库,执行SQL查询。2)通过会话管理等功能处理HTTP请求和用户状态。3)使用事务确保数据库操作的原子性。4)防止SQL注入,使用异常处理和关闭连接来调试。5)通过索引和缓存优化性能,编写可读性高的代码并进行错误处理。

您如何防止PHP中的SQL注入? (准备的陈述,PDO)您如何防止PHP中的SQL注入? (准备的陈述,PDO)Apr 15, 2025 am 12:15 AM

在PHP中使用预处理语句和PDO可以有效防范SQL注入攻击。1)使用PDO连接数据库并设置错误模式。2)通过prepare方法创建预处理语句,使用占位符和execute方法传递数据。3)处理查询结果并确保代码的安全性和性能。

PHP和Python:代码示例和比较PHP和Python:代码示例和比较Apr 15, 2025 am 12:07 AM

PHP和Python各有优劣,选择取决于项目需求和个人偏好。1.PHP适合快速开发和维护大型Web应用。2.Python在数据科学和机器学习领域占据主导地位。

PHP行动:现实世界中的示例和应用程序PHP行动:现实世界中的示例和应用程序Apr 14, 2025 am 12:19 AM

PHP在电子商务、内容管理系统和API开发中广泛应用。1)电子商务:用于购物车功能和支付处理。2)内容管理系统:用于动态内容生成和用户管理。3)API开发:用于RESTfulAPI开发和API安全性。通过性能优化和最佳实践,PHP应用的效率和可维护性得以提升。

PHP:轻松创建交互式Web内容PHP:轻松创建交互式Web内容Apr 14, 2025 am 12:15 AM

PHP可以轻松创建互动网页内容。1)通过嵌入HTML动态生成内容,根据用户输入或数据库数据实时展示。2)处理表单提交并生成动态输出,确保使用htmlspecialchars防XSS。3)结合MySQL创建用户注册系统,使用password_hash和预处理语句增强安全性。掌握这些技巧将提升Web开发效率。

PHP和Python:比较两种流行的编程语言PHP和Python:比较两种流行的编程语言Apr 14, 2025 am 12:13 AM

PHP和Python各有优势,选择依据项目需求。1.PHP适合web开发,尤其快速开发和维护网站。2.Python适用于数据科学、机器学习和人工智能,语法简洁,适合初学者。

PHP的持久相关性:它还活着吗?PHP的持久相关性:它还活着吗?Apr 14, 2025 am 12:12 AM

PHP仍然具有活力,其在现代编程领域中依然占据重要地位。1)PHP的简单易学和强大社区支持使其在Web开发中广泛应用;2)其灵活性和稳定性使其在处理Web表单、数据库操作和文件处理等方面表现出色;3)PHP不断进化和优化,适用于初学者和经验丰富的开发者。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
4 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
4 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
4 周前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
1 个月前By尊渡假赌尊渡假赌尊渡假赌

热工具

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

安全考试浏览器

安全考试浏览器

Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具