0

0

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

WBOY

WBOY

发布时间:2023-09-04 22:13:10

|

630人浏览过

|

来源于php中文网

原创

wordpress中的面向对象编程:控制结构i

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

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

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

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

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

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

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

什么是控制结构?

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

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

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

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

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

例如,条件语句有:

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

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

  • for
  • foreach
  • do
  • while

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

条件语句

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

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

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

if/then 语句

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


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

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

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

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

  1. $is_active
  2. $total_count

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

代码如下:


在上面的示例中,$total_count 将加一,因为 $is_active 计算结果为 true。

或者,假设 $is_active 设置为 false


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

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

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

话虽如此,让我们再看一个 if/then 语句的示例。在此示例中,我们将查看 if/elseif/else。首先,我们假设 $is_active 设置为 true,并且 $total_count 设置为 10。

android中音频视频开发教程 中文WORD版
android中音频视频开发教程 中文WORD版

媒体包提供了可管理各种媒体类型的类。这些类可提供用于执行音频和视频操作。除了基本操作之外,还可提供铃声管理、脸部识别以及音频路由控制。本文说明了音频和视频操作。 本文旨在针对希望简单了解Android编程的初学者而设计。本文将指导你逐步开发使用媒体(音频和视频)的应用程序。本文假定你已安装了可开发应用程序的Android和必要的工具,同时还假定你已熟悉Java或掌握面向对象的编程概念。感兴趣的朋友可以过来看看

下载
= 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 的结构,然后我们看一下几个简单的例子。


关于这种特定类型的条件,首先要注意的是,评估发生在一个位置:在 switch 语句旁边的代码块顶部。 p>

这里,评估发生一次,然后每个后续 case 语句决定采取哪个操作。我们将讨论的每个语句中还包含一个 break 语句,并且在我们将要讨论的底部还有一个 default 代码块也在文章末尾进行讨论。

但在我们执行任何操作之前,让我们设置一个稍微更实际的示例,说明基本 switch/case 语句的样子。

假设我们有一个值 $first_name,然后我们希望根据此人的名字采取特定的操作过程。在此示例中,我们将根据某人的名字设置其电子邮件地址。如果我们无法识别该人的名字,那么我们会将值设置为 null

当然,这是一个有点做作的例子,但它会证明这一点:


让我们看一下上面示例中的控制流程:

  • 我们将 $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)。

您可以利用这一点来发挥自己的优势的一个示例如下:


在上面的示例中,我们为“Tom”定义了小写或首字母大写的情况,并演示了代码如何进入下一个 case 语句。

但是有一个更好的方法可以让它更加防弹:


请注意,这需要 PHP 函数 strtolower 来强制传入的 $persons_name 完全小写。这使我们能够进一步完善我们的案例陈述。

接下来会发生什么?

在本文中,我们研究了 PHP 中可用的两组控制结构中的第一组。不,这些并不是面向对象编程的明确组成部分,但在我们真正开始讨论该范例的更多基础方面之前,我们需要了解允许我们编写面向对象代码的所有细节。

为此,我们将在下一篇文章中通过查看循环来继续讨论控制结构。

之后,我们就可以将注意力转向函数了。对于那些熟悉过程式编程的人来说,函数并不是什么新鲜事。但是,如果您是面向对象编程的新手,那么有许多因素可以将它们与过程编程中的使用方式区分开来。

这就是下一组文章的路线图。与往常一样,欢迎提供反馈,我期待在下一篇文章中继续我们的讨论。

相关专题

更多
php文件怎么打开
php文件怎么打开

打开php文件步骤:1、选择文本编辑器;2、在选择的文本编辑器中,创建一个新的文件,并将其保存为.php文件;3、在创建的PHP文件中,编写PHP代码;4、要在本地计算机上运行PHP文件,需要设置一个服务器环境;5、安装服务器环境后,需要将PHP文件放入服务器目录中;6、一旦将PHP文件放入服务器目录中,就可以通过浏览器来运行它。

2709

2023.09.01

php怎么取出数组的前几个元素
php怎么取出数组的前几个元素

取出php数组的前几个元素的方法有使用array_slice()函数、使用array_splice()函数、使用循环遍历、使用array_slice()函数和array_values()函数等。本专题为大家提供php数组相关的文章、下载、课程内容,供大家免费下载体验。

1669

2023.10.11

php反序列化失败怎么办
php反序列化失败怎么办

php反序列化失败的解决办法检查序列化数据。检查类定义、检查错误日志、更新PHP版本和应用安全措施等。本专题为大家提供php反序列化相关的文章、下载、课程内容,供大家免费下载体验。

1528

2023.10.11

php怎么连接mssql数据库
php怎么连接mssql数据库

连接方法:1、通过mssql_系列函数;2、通过sqlsrv_系列函数;3、通过odbc方式连接;4、通过PDO方式;5、通过COM方式连接。想了解php怎么连接mssql数据库的详细内容,可以访问下面的文章。

974

2023.10.23

php连接mssql数据库的方法
php连接mssql数据库的方法

php连接mssql数据库的方法有使用PHP的MSSQL扩展、使用PDO等。想了解更多php连接mssql数据库相关内容,可以阅读本专题下面的文章。

1444

2023.10.23

html怎么上传
html怎么上传

html通过使用HTML表单、JavaScript和PHP上传。更多关于html的问题详细请看本专题下面的文章。php中文网欢迎大家前来学习。

1235

2023.11.03

PHP出现乱码怎么解决
PHP出现乱码怎么解决

PHP出现乱码可以通过修改PHP文件头部的字符编码设置、检查PHP文件的编码格式、检查数据库连接设置和检查HTML页面的字符编码设置来解决。更多关于php乱码的问题详情请看本专题下面的文章。php中文网欢迎大家前来学习。

1529

2023.11.09

php文件怎么在手机上打开
php文件怎么在手机上打开

php文件在手机上打开需要在手机上搭建一个能够运行php的服务器环境,并将php文件上传到服务器上。再在手机上的浏览器中输入服务器的IP地址或域名,加上php文件的路径,即可打开php文件并查看其内容。更多关于php相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

1307

2023.11.13

excel表格操作技巧大全 表格制作excel教程
excel表格操作技巧大全 表格制作excel教程

Excel表格操作的核心技巧在于 熟练使用快捷键、数据处理函数及视图工具,如Ctrl+C/V(复制粘贴)、Alt+=(自动求和)、条件格式、数据验证及数据透视表。掌握这些可大幅提升数据分析与办公效率,实现快速录入、查找、筛选和汇总。

0

2026.01.21

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
第二十三期_前端开发
第二十三期_前端开发

共98课时 | 7.5万人学习

WordPress视频教程
WordPress视频教程

共23课时 | 9.7万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号