(1)自定義數組 —— 項目中的重點
(2)PHP預定義數組 —— 重點&難點
(3)自定義函數 —— 了解
(4)PHP預定義函數 —— 項目中的重點
1.自定義數組
數組:array,一個可以保存多個數值的變量
定義一個數組:
$ageList = [ 20, 38, 25, 37 ];
$nameSet = [ 'Tom', 'Mary', 'King' ];
$isMarriedArr = [ true, false, false, true ];
輸出整個數組不能用echo,要用var_dump();
獲取數組中元素的個數(數組的長度):
echo count($ageList);
操作某個元素:
echo $nameSet[ 1 ];
$nameSet[ 1 ] = 'Maria';
向一個數組中追加新元素:
$nameSet[ ] = 'Scott'; #PHP會自動為新元素分配下標
[ ]運算符的三種用法: (1)創建新數組: $arr = [ 10, 30, 50 ]; (2)訪問某個已有元素: $arr[2] = 35; (3)向數組中追加新元素: $arr[ ] = 75; |
練習:創建一個數組保存3個筆記本的標題,使用循環輸出數組中的每個元素。再向數組中追加2個新的筆記本信息,使用循環輸出數組中的每個元素。
PHP中數組的兩種類型——重要知識點:
(1)索引數組:每個元素的下標是數字,形如0/1/2/3....
$arr = [10, 30, 50, 60];
$emp = [3051, 'Tom', 6000, true];
(2)關聯數組:每個元素的下標是自定義的字符串
$emp = [ 'eid'=>3051, 'ename'=>'Tom', 'salary'=>6000, 'isMarried'=>true ];
結論:索引數組適合於存儲多個相同含義的數據,如10個員工的姓名;關聯數組適合於存儲多個不同含義/類型的數據,如一個商品的多個信息。
練習:創建一個數組,保存學子商城中一個用戶的信息,包含編號、用戶名、性別、是否在線。
練習:創建一個數組,保存學子商城中一個用戶的信息,包含編號、用戶名、性別、是否在線。
練習:創建一個數組,保存學子商城中一個用戶的信息,包含編號、用戶名、性別、是否在線。
練習:創建一個數組,保存學子商城中一個用戶的信息,包含編號、用戶名、性別、是否在線。
練習:創建一個數組,保存學子商城中一個用戶的信息,包含編號、用戶名、性別、是否在線。
練習:創建一個數組,保存上述五個用戶。
$userList = [ $user0, $user1, $user2, $user3, $user4 ];
$userList = [ [ ], [ ], [ ], [ ], [ ] ]; 二維數組
午間練習:循環執行把上述二維數組中的每個用戶信息輸出到一行中
2.PHP中的循環結構 —— foreach循環 —— 了解
foreach:"為了每一個",針對數組中的每一個元素,執行一次循環體——只能用於遍歷數組。語法:
foreach( $數組名 as $變量名 ){
#循環主體
}
foreach( $數組名 as $下標變量名=>$元素變量名 ){
#循環主體
}
$arr = [ 10, 30, 50, 70 ];
foreach( $arr as $v ){
echo $v;
}
---------------------------------------
$v = 10; 執行一次循環主體;
$v = 30; 執行一次循環主體;
$v = 50; 執行一次循環主體;
$v = 70; 執行一次循環主體;
循環結束。
練習:創建一個數組,保存4個員工的姓名,使用foreach循環遍歷出每個元素。 —— foreach可以遍歷索引數組
練習:創建一個數組,保存一個筆記本信息,包括:編號、標題、價格,是否特價。使用foreach遍歷輸出每個元素的值。—— foreach可以遍歷關聯數組
|
for循環 |
foreach循環 |
能遍歷索引數組嗎 $arr=[10, 30, 50]; |
for($i=0; $i<count(...); $i++){ echo $arr[$i]; } |
foreach($arr as $v){ echo $v; } |
可以跳序遍歷嗎? |
for($i=0; $i<count(...); $i+=2){ echo $arr[$i]; } |
不能 |
可以倒序遍歷嗎? |
for($i=10; $i>=0; $i--){ echo $arr[$i]; } |
不能 |
能輸出1~10嗎? |
for($i=1; $i<=10; $i++){ echo $i; } |
不能 |
能遍歷關聯數組嗎 $u=['uid'=>10, 'uname'=>'tom'] |
不能 |
foreach($u as $v){ echo $v; }#項目中此用法很少! |
3.PHP中的預定義數組變量
預定義變量:由PHP解釋器自動為每個PHP文件創建的變量,程序員可以直接使用,無需自己手工聲明。如下:
$_REQUEST:請求( request ),用於封裝客戶端發給服務器請求數據
$_GET:
$_POST:
$_FILES:
$_COOKIE:
$_SESSION:
初始情況下,上述幾個變量都是關聯數組: array(0){ }
(1)客戶端瀏覽器如何給服務器發送請求數據?——瀏覽器用戶
http://127.0.0.1/login.php?n=tom&p=123
頁面地址后的?k=v&k=v字符串稱為“查詢字符串”/“請求參數”
(2)WEB服務器會如何處理客戶端提交的請求數據呢?——WEB服務器
$_REQUEST = [ ];
$_REQUEST['n'] = 'tom';
$_REQUEST['p'] = '123';
(3)程序員編寫的頁面如何獲取請求數據呢?——程序員
echo $_REQUEST[ 'n' ];
echo $_REQUEST[ 'p' ];
練習:創建add.php,客戶端訪問此頁面時需要提交num1、num2和num3三個數據,服務器端頁面接收這三個數據,向客戶端輸出三個請求數據的整數和。
練習:創建star.php,接收客戶端提交的rows和cols兩個請求數據,根據這兩個數據輸出指定行數和列數的※
練習:創建sum.php,接收客戶端提交給服務器的start和end兩個請求數據,服務器端頁面輸出從start到end的累加和
4.PHP中函數的基本概念
Function:函數,功能體,接收一些要處理的數據(稱為參數),加以執行處理,得到特定的結果 —— 並可以反復多次執行。
程序員最怕的事情:Ctrl+C/V代碼 —— 代碼的可維護性差! 使用函數封裝需要反復多次執行的代碼! |
創建一個最簡單函數:
function 函數名( ){
#函數中要執行的所有代碼
}
運行/執行一次函數:
函數名( ) ; #()表示“執行”
創建一個可以接收運行參數的函數:
function 函數名( $變量1, $變量2, .... ){ #形式參數
#函數中要執行的所有代碼
}
運行/執行一次函數:
函數名( 值, 值, .... ) ; #實際參數
練習:創建一個函數getScore(),其中聲明三個變量,分別表示語文、數學、英語的成績,輸出三科總分。調用此函數三次。
練習:創建一個函數printStar(),其中輸出一個5行10列的※矩陣。調用此函數三次。
課后練習:
函數練習:
(1)創建一個函數getSum(),接收三個數字做參數,函數體中計算出這三個數字的代數和,並輸出。調用此函數三次,每次調用傳遞不同的實參值。
(2)創建一個函數getAvg(),接收三個數字做參數,函數體中計算出這三個數字的平均值,並輸出。調用此函數三次,每次調用傳遞不同的實參值。
數組練習:
(1)創建一個數組,保存學子商城中一個用戶的信息,包含用戶編號、用戶名、密碼、郵箱、手機、頭像、性別;
(2)再創建一個數組,保存學子商城中一個用戶的信息,包含用戶編號、用戶名、密碼、郵箱、手機、頭像、性別;
(3)再創建一個數組,保存學子商城中一個用戶的信息,包含用戶編號、用戶名、密碼、郵箱、手機、頭像、性別;
(4)再創建一個數組,保存學子商城中一個用戶的信息,包含用戶編號、用戶名、密碼、郵箱、手機、頭像、性別;
(5)創建一個空數組,將上述四個商品的數據保存到其中;輸出這個大數組中的所有數據 —— 盡可能漂亮的輸出。