PHP丨PHP基礎知識之條件語IF判斷「理論篇」

2020-12-14 一隻大臉貓博客

if語句是指程式語言(包括c語言、C#、VB、java、php、彙編語言等)中用來判定所給定的條件是否滿足,根據判定的結果(真或假)決定執行給出的兩種操作之一。

if語句概述

if語句是指程式語言(包括c語言、C++、C#、java、php、VB、彙編語言等)中用來判定所給定的條件是否滿足,根據判定的結果(真或假)決定執行給出的兩種操作之一。if的返回值為真或假,可以用bool型變量進行存儲,佔用一字節。

條件語句作用

以編寫腳本為例,在編寫腳本中,條件語句是非常有用的。與其按照腳本內容執行每一行代碼,不如只有當特定條件滿足時,才執行腳本中的某些代碼。甚至可將單個條件擴展為條件語句的集合,用於決定某些代碼是否執行。

使用條件語句,可以告訴JavaScript做到像下面的事情:

·如果變量youmame等於Jonh,那麼將「hello to John」輸出到頁面。否則輸出「hello to Unknow Surfer」並將內容加粗。

·如果變量mycar等於Corvette或Mustang,那麼向瀏覽器發出警告「Cool car」。如果變量mycar等於Covette,並且變量yourname等於Marty,那麼向瀏覽器發出警告「Marty is cool and drives a cool car」。否則,向瀏覽者發出警告「Unknown Surfer drives a car of some sort」。

我並不駕駛Corvette或者Mustang,所以請將我從很時髦的人群中排除。而這些例子顯示了如何在執行操作之前通過檢查某些條件,達到更多的目的。這些類型的語句在腳本中稱為控制流。

if語句一般形式

if語句的一般形式如下:

if(表達式)語句1

[else語句2]

if語句中的「表達式」可以是關係表達式、邏輯表達式,甚至是數值表達式。其中最直觀、最容易理解的是關係表達式。所謂關係表達式就是兩個數值進行比較的式子。

空懸else

問題描述

if-else 語句引入了一種二義性問題稱為空懸else (dangling-else) 問題,這種問題出現在當if 子句多於else 子句時。問題是這些else 子句分別和哪一個if 子句匹配。例如:

if($str <= $arr[1])

if($str == $arr[1]) $num++;

else{

$str = $arr[1];

$num = 1;

}

程序的縮進形式表明程式設計師相信else 應該與最外面的if 子句匹配,然而在中空懸else 二義性由以下規定來解決:else 子句與最後出現的未被匹配的if 子句相匹配

解決方式

要想改變這種預設的空懸else 匹配效果一種方法是把後來出現的if 放在複合語句中:

if($str <= $arr[1]){

if($str == $arr[1]) $num++;

}else{

$str = $arr[1];

$num = 1;

}

編碼風格建議

總是使用複合語句括號以避免在以後修改代碼時可能出現的混淆或錯誤。

比較運算符

equ - 等於

neq - 不等於

lss - 小於

leq - 小於或等於

gtr - 大於

geq - 大於或等於

文章收集與網絡,辛苦收集轉載請備註出處一隻大臉貓博客!

PHP丨PHP基礎知識之流程控制for循環「理論篇」

PHP丨PHP基礎知識之流程控制WHILE循環「理論篇」

相關焦點

  • PHP丨PHP基礎知識之條件語SWITCH判斷「理論篇」
    Switch在一些計算機語言中是保留字,其作用大多情況下是進行判斷選擇。僅當一個 case 語句中的值和 switch 表達式的值匹配時 php 才開始執行語句,直到 switch 的程序段結束或者遇到第一個 break 語句為止。如果不在 case 的語句段最後寫上 break 的話,php 將繼續執行下一個 case 中的語句段。例如:這裡如果 $i 等於 0,php 將執行所有的 print 語句!
  • PHP丨PHP基礎知識之流程控制WHILE循環「理論篇」
    PHPwhile 循環是 php 中最簡單的循環類型。它和 C 語言中的 while 表現得一樣。php$num=1;$aaa="10以內的偶數為:";while($num<=10){if($num<=10){$aaa.=$sum.
  • PHP丨PHP基礎知識之數據類型之間相互轉換
    昨天剛講完PHP基礎知識數據類型,今天就來講講PHP數據類型的轉換。轉換變量或者值的類型,轉換成其他數據類型的方法主要分為兩大類:自動轉換和強制轉換。NULL轉為字符串,為空字符二、強制類型轉換:自動類型轉換是編譯器根據代碼的上下文環境自行判斷的結果,有時候並不是那麼「智能」,不能滿足所有的需求;如果需要,程式設計師也可以自己在代碼中明確地提出要進行類型轉換,這稱為強制類型轉換。
  • PHP-語言基礎「程式設計師培養之路第三十一天」
    php.......?>注意:純php腳本文件要求:1. 開始標籤要在第一行頂頭寫;2. 刪除結束標籤。常量使用define關鍵字定義常量,常量命名要全部大寫,常量的數據類型不能是 資源、對象定義常量define("SCHOOL","清華大學");判斷常量
  • (理論篇)溫故而知新_PHP入門基礎教程
    以下是文章分享1群,由於群人數已超過300,不能掃碼進群,這個任務呢,就由小篇來拉你們進群了,掃描下面二維碼,加小篇好友~簡單的回顧一下基礎知識1、嵌入方法:類似ASP的<%,PHP可以是<?
  • PHP丨PHP基礎知識之數據類型
    在下列情況下一個變量被認為是NULL1、被賦值為NULL值的變量;2、尚未被賦值的變量;3、被unset函數銷毀的變量對象和資源屬於「引用類型」,其他都屬於「值類型」之前還接觸過一種「偽類型」,但是目前還是沒有了解到偽類型屬不屬於數值類型。
  • php基礎大通關——十分鐘了解php基礎知識點之二
    本節我們繼續通過練習題的方式來熟悉php的基礎知識點。1. echo 和 print 有什麼區別?php常用函數3. Joomla 在 PHP 中是什麼? 一套功能豐富的庫 開源 CMS 設計動態頁面的框架 可重用 PHP 組件的框架和分發系統解析:Joomla!
  • PHP基礎
    PHP基礎1.輸出數據echo 只能輸出輸出標量數據類型
  • 使用PHP Mktime實現倒計時功能
    每天獲取最新的編程小知識!源 / php中文網      源 / www.php.cn如果你的網頁關注的是未來的某一特定事件,比如春節、國慶或者你的婚禮,你可能想要一個倒計時計時器,讓用戶知道離事件發生還有多久。
  • PHP丨PHP基礎知識之流程控制for循環「理論篇」
    執行末尾循環體後將再次進行條件判斷,若條件還成立,則繼續重複上述循環,當條件不成立時則跳出當下for循環。一、循環的結構不同for循環的表達式為:for(單次表達式;條件表達式;末尾循環體){中間循環體;}while循環的表達式為:while(表達式){循環體}二、執行條件的判斷方式不同
  • 如何獲取PHP字符串的最後n個字符
    源 / php中文網      源 / www.php.cn編寫一個PHP程序來獲取給定字符串的最後n個字符。php    $str = "HTML!CSS!MySQL!PHP!"php    $str = "HTML!CSS!MySQL!PHP!"; $n = 10;   $start = strlen($str) - $n; $str1 = substr($str, $start);    echo $str1; ?
  • 2019年最新PHP經典面試題及答案,PHP程式設計師必看
    源 / php中文網      源 / www.php.cn2019年最新PHP經典面試題及答案,PHP程式設計師必看.相當於 error_reporting('E_ALL'); 輸出所有的錯誤7、打開php.ini中的Safe_mode,會影響哪些參數?至少說出6個。
  • 如何計算PHP目錄中的文件數?
    每天獲取最新的編程小知識!源 / php中文網      源 / www.php.cn在項目開發過程中,有時候可以需要對給定文件夾路徑中的文件、圖像、zip文件、rar文件等進行計數,那麼我們就可以使用php中的glob()和count
  • php語言入門教程(PHP編程學習路線圖)
    對於初學者建議選擇簡單好用的編輯器,可以先選擇Notepad++,等有一定基礎後可以選擇Sublime、phpStorm、VSCode等開發工具Notepad++下載地址:https://www.php.cn/xiazai/gongju/92其它PHP編輯器推薦,請移步這篇文章:2.
  • 如何使用PHP生成隨機字符串
    源 / php中文網      源 / www.php.cn使用PHP生成隨機,唯一,字母數字字符串。php $str=rand(); $result = md5($str); echo $result; ?
  • PHP學習資料推薦(書籍篇)
    書與書之前也有差別,以下推薦主要是名著,能有效傳輸知識書籍,涵蓋前端,軟體工程,微服務,分布式系統,高流量網站建設,php基礎,php框架源碼解讀,php內核解讀,redis應用,運維以及優化和內核解讀,mongodb基礎,分片,集群,mysql基礎,innodb源碼解讀,mysql配置,語句,索引優化,nginx應用,配置優化,源碼解讀,linux 網絡編程,c語言基礎,算法(c描述),tcp/http
  • PHP中的isset()和array_key_exists()函數的區別
    每天獲取最新的編程小知識!源 / php中文網      源 / www.php.cnisset()函數是PHP中的內置函數,它檢查變量是否已設置且不為NULL。php     $array = array();    echo isset($array['geeks']) ? 'array is set.' :      '數組未設置'; ?
  • 用PHP讀取excel文件內容、獲取單元格數據
    每天獲取最新的編程小知識!源 / php中文網      源 / www.php.cn本篇文章主要介紹如何使用PHP讀取excel文件內容即每個單元格數據,希望對大家有所幫助。PHP腳本的內存量,使用它來調試PHP代碼性能⑥var_dump() 用來列印數組,或者輸出字符串php讀取excel文件,並進行相應處理的具體方法代碼示例如下:<?
  • 為什麼要在PHP中同時檢查isset()和!empty()函數
    每天獲取最新的編程小知識!源 / php中文網      源 / www.php.cnisset()函數是PHP中的內置函數,它檢查變量是否已設置且不為NULL。php   $temp = 0;    if (empty($temp)) {     echo $temp . ' is considered empty'; }    echo "\n";    $new = 1; if (!
  • PHP-文件上傳和下載「程式設計師培養之路第三十八天」
    第一節 上傳設置客戶端設置form:method=post、enctype="multipart/form-data" input:type=file<form action="upload.php