1. 程式人生 > >學有小成-php基礎語法-04

學有小成-php基礎語法-04

基礎語 情況 文件中 日誌文件 com msg 退出 案例 9.png

一流程控制

計算機中的流程控制可分為三種:

順序結構

程序自上而下的一個執行過程。

分支結構

根據某一條件將程序轉向不同的分支處執行。

循環

計算機最大的特點計算機速度快,計算機主要用於解決重復性的問題。

二分支結構

1if分支

①、單分支

語法:

if(表達式){

//語句體

}

說明:

當表達式成功時,執行語句,如果不成功直接結束if結構,繼續其後的語句執行。

技術分享圖片

②、雙分支

語法:

if(表達式A){

語句體A

}else if(表達式B){

語句體B

}

說明:

當表達式A成功時,執行語句體A,如果不成立來判斷表達式B,如果表達式B執行語句體B

當任何一個語句體執行結束後,不再會去進行其他表達式的判斷。

示例:

技術分享圖片

③、多分支

語法:

if(表達式A){

語句體A

}else if(表達式B){

語句體B

}else if(表達式C){

語句體C

}else{

缺省語句體

}

說明:

自上而下的判斷各個表達式,當某個表達式成立時,執行相應的語句體

語句體執行結束後,不會再判斷其他的表達式。

當所有的表達式都不成立,執行缺省語句體。

技術分享圖片

技術分享圖片

2switch結構

當一個問題需要判斷的條件比較多時,Php又提供了一個switch分支結構。

語法:

switch(變量){

case 1:

語句體1

break;

case 2:

語句體2

break;

case 3:

語句體3

break;

default:

缺省語句體

}

說明:

根據switch後的變量與case後的值的匹配情況,將程序轉向不同的語句體執行。

break可以省略。

當一個語句體執行結束後,如果沒有遇到break,則會執行其後的語句體,不會判斷其後case的值。

示例:

技術分享圖片

ifswitch的區別:

if結構的條件可以表示一個範圍。

switch結構主要用於表示一個具體的值。

三循環結構

1for循環

循環結構主要是用於解決重復性的問題。

語法:

for(循環控制變量初始化;表達式;循環控制變量的更改){

//循環體

}

說明:

循環控制變量初始化;表達式;循環控制變量的更改 循環3要素。

a、首先執行

循環控制變量初始化,此步僅執行1次。

b、判斷表達式是否成立,如果不成立直接結束循環體,繼續其後的語句執行。

c、如果成立,執行循環體。

d、循環體執行結束後,執行循環控制變量的更改

e、往復執bcd,直到循環控制變量的值主表達式不成立時,結束循環結構。

對於for循環結構,要求大家能夠作到以下幾點:

l 能夠使用for循環,模擬任意次數的循環。

l 能夠使用循環控制變量來模擬數據或規則

循環嵌套:

技術分享圖片

提示:

雙層循環的嵌套主要解決具有行列特性的問題。

使用程序語言解決問題的思路:

首先要判斷使用何種流程控制。

再將問題中的條件轉換為計算機能夠表達的式子。

示例:

技術分享圖片

課堂案例:

百錢百雞,100文錢買100只雞,公雞51只,母雞31只,小雞13只。

窮舉法:

技術分享圖片

2while循環

語法:

while(表達式){

//循環體

}

說明:

只要是循環必須有3要素組成。但是while循環的語句結構中僅出現了表達式。

另外兩個要素需要自己設計。

首先判斷表達式是否成立?

不成立,直接結束循環結構,繼續其後的語句執行。

成立,執行循環體,循環體執行結束後,再來判斷表達式。循環往復的執行。直接到表達式不成立。

示例:

技術分享圖片

forwhile的區別

l 對於for循環結構,主要用於循環次數已知或根據某一條件可以確定。

l while用於循環次數未知的循環。

3do...while

語法:

do{

//循環體

}while(表達式)

說明:

首先執行循環體

循環體執行結束後,判斷表達式是否成立,

如果不成立,直接結束循環結構,繼續其後的語句執行,

如果成立,再執行循環體。往復的執行,直到表達式不成立。

示例:

技術分享圖片

4循環的結束與退出

①、continue

語法:

continue n;

說明:

n的取值是一個整數,如果省略默認是1

n主要是用在循環嵌套的情況下。

結束當前循環結構的本次循環,繼續上n層循環結構的下一次循環。

示例:

技術分享圖片

技術分享圖片

②、break

語法:

break n;

說明:

n的取值是一個整數,如果省略默認是1

n主要是用在循環嵌套的情況下。

直接結束上n循環循環結構

示例:

技術分享圖片

四流程控制語句的標簽語法

php在將php代碼嵌入到html文檔時,又提供了一種標簽語法。

技術分享圖片

①、if標簽語法:

標準語法:

<?php if(...):?>

<?php endif?>

簡化語法:

<?php if(...){?>

<?php }?>

②、for標簽語法

標準語法:

<?php for():?>

<?php endfor?>

簡化語法:

<?php for(){?>

<?php }?>

③、while的標簽語法

標準語法:

<?php while():?>

<?php endwhile?>

簡化語法

<?php while(){?>

<?php }?>

五文件載入

1介紹

在實際開發過程中,經常會在一個php文件中引入其他的文件。

被引入的文件可以是html也可以是php文件。

2語法

①、require

require(文件名)

require_once(文件名)

②、include

include(文件名)

include_once(文件名)

示例:

技術分享圖片

在引用文件時,主要有兩種使用目的:

當前文件(php)有數據,想在被引用的文件(html)中顯示。

技術分享圖片

在當前文件(php)中想使用,另一個文件(php)中的功能性代碼:

技術分享圖片

3引入路徑的問題

在實現項目中,對於html文件,我是不允許用戶直接請求,而是指向一個php文件,讓php文件來引處這個html文件。

當一個php文件引入一個html文檔時,html文件本身也會引入一些其他的文件,如:圖片文件、css文件、js文件。這時會發生路徑更改的問題。路徑要以當前php文件所在的路徑為起點。

技術分享圖片

技術分享圖片

4include和require的區別

include 在引入文件時,如果被引入的文件不存在則會報錯,但程序還會繼續向下執行。

require在引入文件時,如果被引入的文件不存在,則會上斷程序的執行。

經驗法則:

require一般用於引入php文件。因為php裏面一般書寫的是功能性的代碼。

include一般用於引入html文檔。

includerequire VS include_concerequire_once的區別

include_oncerequire_once每次在引入文件時,都會檢查所要引入的文件之前有沒有被引入過,如果有引入過就不會再引入。

includerequire沒有這樣的檢查過程。

5__DIR__\__FILE__

__FILE__ 用於獲取文件所在的完整文件名。

__DIR__ 用於獲取文件所在的路徑。

__FILE____DIR__並不會被引入後所更改。永遠代碼__FILE____DIR__所在的文件的文件名與文件夾名。

六錯誤處理

1錯誤的分類

①、編譯錯誤

在編譯的過程中發生的錯誤就編譯錯誤,編碼錯誤是最容易解決的。很多是由於書寫錯誤。

技術分享圖片

②、執行錯誤

在編譯通過後,在執行階段發生的錯誤。此種錯誤一旦發生,會根據錯誤的等級,來決定是否中斷程序的執行。

③、邏輯錯誤

由於程序的邏輯不嚴謹,而產生的錯誤。此種錯誤是最難排查的。程序可以正常執行,但最終的結果並不是我們所期望的。

2錯誤代碼

php的錯誤處理機制中,每一種錯誤都使用了一個錯誤標識,錯誤標識是常量的形式存在。

①、獲取錯誤代碼

技術分享圖片

②、系統錯誤

E_ERROR 致命錯誤,一旦發生就會中斷程序的執行

E_WRRING 警告錯誤,一旦發生並不會中斷程序的執行,

E_NOTICE 提示錯誤,一旦發生並不會中斷程序的執行,

E_PARSE 編譯錯誤,一旦發生就會中斷程序的執行

③、自定義錯誤

E_USER_ERROR 用戶級的致命錯誤,一旦發生就會中斷程序的執行

E_USER_WRRING 用戶級的警告錯誤,一旦發生並不會中斷程序的執行,

E_USER_NOTICE 用戶級的提示錯誤,一旦發生並不會中斷程序的執行,

④、所有的錯誤

E_ALL

3錯誤的觸發

①、系統錯誤的觸發

程序員無法幹涉系統錯誤的觸發,系統錯誤由php自已檢測並觸發的。

技術分享圖片

②、自定義的錯誤

trigger_error();

語法:

trigger_error(msg,type);

說明:

msg 錯誤描述信息

type 自定義錯誤的代碼(E_USER_ERRORE_USER_WARNINGE_USER_NOTICE)

示例:

技術分享圖片

技術分享圖片

提示:

使用錯誤處理機制的好處是,可以將錯誤記錄起來。默認會被記錄到apache/logs/error.log文件中。

4錯誤的控制設置

php錯誤控制可以在php.ini中進行。我們可以控制錯誤是否顯示,還可以控制顯示哪一類的錯誤。

①、控制是否顯示錯誤

display_errors=on 顯示錯誤

display_erros =off 關閉錯誤的顯示

②、控制顯示哪一類錯誤

error_reporting =

技術分享圖片

5錯誤的日誌文件設置

我們還可以控制是否記錄錯誤,以及錯誤日誌的記錄位置。

①、是否記錄記錄

log_errors=on 記錄錯誤

log_errors=off 不記錄錯誤

②、錯誤記錄的位置

如果沒有設置error_log默認是記錄到apache的錯誤日誌中\logs\error.log

error_log=syslog 會記錄到操作系統的日誌中

error_log=文件名 記錄到自定義的位置

技術分享圖片

學有小成-php基礎語法-04