首先,讓我們來(lái)看看foreach語(yǔ)句的基本語(yǔ)法:
foreach ($array as $key =>$value) { //做出相應(yīng)操作 }
其中,$array表示要遍歷的數(shù)組,$key代表當(dāng)前元素的鍵名,$value代表當(dāng)前元素的值。
舉個(gè)例子,假如我們有一個(gè)名為$books的數(shù)組,包含了各種書籍,我們要將其中所有的書籍都打印出來(lái),就可以使用foreach語(yǔ)句。如下所示:
$books = array("PHP入門到精通", "JavaScript高級(jí)編程", "MySQL數(shù)據(jù)庫(kù)實(shí)戰(zhàn)"); foreach ($books as $book) { echo $book . "
"; }
上面的代碼將依次打印出$books數(shù)組中的每個(gè)元素,即三本書籍的名稱。注意,這里我們并沒(méi)有使用$key這個(gè)變量,因?yàn)樵谶@個(gè)例子中,我們并不需要使用每個(gè)元素的鍵名。
但如果我們需要使用每個(gè)元素的鍵名呢?比如我們想知道每本書的序號(hào),該怎么辦呢?我們可以使用下面這段代碼:
$books = array("PHP入門到精通", "JavaScript高級(jí)編程", "MySQL數(shù)據(jù)庫(kù)實(shí)戰(zhàn)"); foreach ($books as $key =>$book) { echo "第" . ($key+1) . "本書是:" . $book . "
"; }
這里我們使用了$key變量,它代表了當(dāng)前元素的鍵名,也就是元素在數(shù)組中的序號(hào)。因?yàn)殒I名從0開(kāi)始計(jì)數(shù),所以我們輸出時(shí)要加1。
除了數(shù)組以外,foreach語(yǔ)句還可以用來(lái)遍歷對(duì)象??聪旅孢@個(gè)例子:
class Person { public $name = "張三"; public $age = 30; public $gender = "男"; } $person = new Person(); foreach ($person as $key =>$value) { echo $key . ":" . $value . "
"; }
這段代碼將輸出$person對(duì)象中的所有屬性及其值。在這里,$key表示屬性名,$value表示屬性的值。
除此之外,foreach語(yǔ)句還可以與break和continue結(jié)合使用。break可以讓foreach循環(huán)提前結(jié)束,而continue則可以讓foreach跳過(guò)當(dāng)前元素,繼續(xù)往下遍歷。下面這個(gè)例子就可以說(shuō)明這兩個(gè)關(guān)鍵字的用法:
$books = array("PHP入門到精通", "JavaScript高級(jí)編程", "MySQL數(shù)據(jù)庫(kù)實(shí)戰(zhàn)"); foreach ($books as $key =>$book) { if ($key == 1) { continue; //跳過(guò)第二本書 } echo "第" . ($key+1) . "本書是:" . $book . "
"; if ($key == 2) { break; //只打印前三本書 } }
上述代碼將執(zhí)行以下操作:
- 打印第一本書:PHP入門到精通
- 跳過(guò)第二本書:JavaScript高級(jí)編程
- 打印第三本書:MySQL數(shù)據(jù)庫(kù)實(shí)戰(zhàn)
- 提前結(jié)束循環(huán)
通過(guò)以上介紹,我們可以看出foreach語(yǔ)句在php中使用非常方便,可以用來(lái)遍歷數(shù)組、對(duì)象等各種數(shù)據(jù)類型。當(dāng)然,這里只是對(duì)foreach語(yǔ)句做了一個(gè)初步介紹,實(shí)際上foreach語(yǔ)句還有很多高級(jí)用法,需要更深入地學(xué)習(xí)和理解。