搜尋
首頁後端開發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 減一。

程式碼如下:

<?php

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

在上面的範例中,$total_count 將加一,因為 $is_active 計算結果為 true。

或者,假設 $is_active 設定為 false

<?php

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

在此範例中,$total_count 將會減一,因為 $is_active 的計算結果為 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 17, 2025 am 12:25 AM

PHP類型提示提升代碼質量和可讀性。 1)標量類型提示:自PHP7.0起,允許在函數參數中指定基本數據類型,如int、float等。 2)返回類型提示:確保函數返回值類型的一致性。 3)聯合類型提示:自PHP8.0起,允許在函數參數或返回值中指定多個類型。 4)可空類型提示:允許包含null值,處理可能返回空值的函數。

PHP如何處理對象克隆(克隆關鍵字)和__clone魔法方法?PHP如何處理對象克隆(克隆關鍵字)和__clone魔法方法?Apr 17, 2025 am 12:24 AM

PHP中使用clone關鍵字創建對象副本,並通過\_\_clone魔法方法定制克隆行為。 1.使用clone關鍵字進行淺拷貝,克隆對象的屬性但不克隆對象屬性內的對象。 2.通過\_\_clone方法可以深拷貝嵌套對象,避免淺拷貝問題。 3.注意避免克隆中的循環引用和性能問題,優化克隆操作以提高效率。

PHP與Python:用例和應用程序PHP與Python:用例和應用程序Apr 17, 2025 am 12:23 AM

PHP適用於Web開發和內容管理系統,Python適合數據科學、機器學習和自動化腳本。 1.PHP在構建快速、可擴展的網站和應用程序方面表現出色,常用於WordPress等CMS。 2.Python在數據科學和機器學習領域表現卓越,擁有豐富的庫如NumPy和TensorFlow。

描述不同的HTTP緩存標頭(例如,Cache-Control,ETAG,最後修飾)。描述不同的HTTP緩存標頭(例如,Cache-Control,ETAG,最後修飾)。Apr 17, 2025 am 12:22 AM

HTTP緩存頭的關鍵玩家包括Cache-Control、ETag和Last-Modified。 1.Cache-Control用於控制緩存策略,示例:Cache-Control:max-age=3600,public。 2.ETag通過唯一標識符驗證資源變化,示例:ETag:"686897696a7c876b7e"。 3.Last-Modified指示資源最後修改時間,示例:Last-Modified:Wed,21Oct201507:28:00GMT。

說明PHP中的安全密碼散列(例如,password_hash,password_verify)。為什麼不使用MD5或SHA1?說明PHP中的安全密碼散列(例如,password_hash,password_verify)。為什麼不使用MD5或SHA1?Apr 17, 2025 am 12:06 AM

在PHP中,應使用password_hash和password_verify函數實現安全的密碼哈希處理,不應使用MD5或SHA1。1)password_hash生成包含鹽值的哈希,增強安全性。 2)password_verify驗證密碼,通過比較哈希值確保安全。 3)MD5和SHA1易受攻擊且缺乏鹽值,不適合現代密碼安全。

PHP:服務器端腳本語言的簡介PHP:服務器端腳本語言的簡介Apr 16, 2025 am 12:18 AM

PHP是一種服務器端腳本語言,用於動態網頁開發和服務器端應用程序。 1.PHP是一種解釋型語言,無需編譯,適合快速開發。 2.PHP代碼嵌入HTML中,易於網頁開發。 3.PHP處理服務器端邏輯,生成HTML輸出,支持用戶交互和數據處理。 4.PHP可與數據庫交互,處理表單提交,執行服務器端任務。

PHP和網絡:探索其長期影響PHP和網絡:探索其長期影響Apr 16, 2025 am 12:17 AM

PHP在過去幾十年中塑造了網絡,並將繼續在Web開發中扮演重要角色。 1)PHP起源於1994年,因其易用性和與MySQL的無縫集成成為開發者首選。 2)其核心功能包括生成動態內容和與數據庫的集成,使得網站能夠實時更新和個性化展示。 3)PHP的廣泛應用和生態系統推動了其長期影響,但也面臨版本更新和安全性挑戰。 4)近年來的性能改進,如PHP7的發布,使其能與現代語言競爭。 5)未來,PHP需應對容器化、微服務等新挑戰,但其靈活性和活躍社區使其具備適應能力。

為什麼要使用PHP?解釋的優點和好處為什麼要使用PHP?解釋的優點和好處Apr 16, 2025 am 12:16 AM

PHP的核心優勢包括易於學習、強大的web開發支持、豐富的庫和框架、高性能和可擴展性、跨平台兼容性以及成本效益高。 1)易於學習和使用,適合初學者;2)與web服務器集成好,支持多種數據庫;3)擁有如Laravel等強大框架;4)通過優化可實現高性能;5)支持多種操作系統;6)開源,降低開發成本。

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.能量晶體解釋及其做什麼(黃色晶體)
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
1 個月前By尊渡假赌尊渡假赌尊渡假赌

熱工具

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具