for變形格式
for (表達(dá)式1; 表達(dá)式2; 表達(dá)式3) {
循環(huán)體
}
表達(dá)式1;
for (; 表達(dá)式2; 表達(dá)式3) {
循環(huán)體
}
【注】無(wú)論如何變形丰嘉,兩個(gè)分號(hào)都不能省略
表達(dá)式1;
for(夯到;表達(dá)式2;){
循環(huán)體
表達(dá)式3;
}
//這樣寫(xiě)就和while(1)是一個(gè)意思饮亏,死循環(huán)耍贾。
【注】表達(dá)式2省略,代表恒為真
for (;;) {
循環(huán)體
}
goto(了解)(禁止使用)
goto是匯編語(yǔ)言遺留下來(lái)的很隨意的一個(gè)語(yǔ)法結(jié)構(gòu)路幸。
1荐开、函數(shù)開(kāi)篇
定義:在一個(gè)大的項(xiàng)目開(kāi)發(fā)過(guò)程中,有些代碼會(huì)被反復(fù)的使用到简肴,這個(gè)時(shí)候我們將這些代碼封裝起來(lái)誓焦,這個(gè)封裝起來(lái)的代碼塊就叫做函數(shù)。
優(yōu)點(diǎn)
1、提高代碼的利用率
2杂伟、提高代碼的可讀性
3移层、便于調(diào)試代碼
分類(lèi)
庫(kù)函數(shù)
自定義函數(shù)
命名
命名和變量的命名一樣
函數(shù)名不區(qū)分大小寫(xiě)(但是我們要區(qū)分大小寫(xiě))
函數(shù)名要有意義
遵從駝峰原則或者下劃線原則 my_func() myFunc()
2、函數(shù)基本語(yǔ)法
基本格式
/*
1赫粥、函數(shù)都要以function關(guān)鍵字開(kāi)始
2观话、函數(shù)名使用英文,遵從規(guī)范
3越平、函數(shù)名后面緊跟著小括號(hào)频蛔,小括號(hào)里面是要寫(xiě)形式參數(shù)的
4、小括號(hào)下面跟著大括號(hào)秦叛,大括號(hào)里面寫(xiě)函數(shù)體
5晦溪、函數(shù)需要調(diào)用才會(huì)執(zhí)行
*/
function hello_baby()
{
//函數(shù)體:就是函數(shù)的里面的代碼,以前我們?cè)谕饷嬖趺磳?xiě)代碼的挣跋,在這里面我們依然這么寫(xiě)
echo 'hello baby<br >';
}
/*
1三圆、函數(shù)調(diào)用才會(huì)執(zhí)行
2、調(diào)用格式避咆。函數(shù)名后面緊跟小括號(hào)舟肉。小括號(hào)是用來(lái)傳遞參數(shù)的,這里面?zhèn)鬟f的參數(shù)叫做實(shí)際參數(shù)查库,如果沒(méi)有參數(shù)路媚,寫(xiě)一個(gè)空的小括號(hào)即可
*/
hello_baby();
無(wú)參數(shù)無(wú)返回值
參數(shù)就是函數(shù)的輸入,返回值就是函數(shù)的輸出
有參數(shù)無(wú)返回值
/*
帶參數(shù)的寫(xiě)法:
$num:形式參數(shù)樊销,相當(dāng)于在該函數(shù)中定義了一個(gè)變量叫做$num整慎,在寫(xiě)函數(shù)體的時(shí)候,可以直接使用這個(gè)$num围苫,因?yàn)樵谡{(diào)用函數(shù)的時(shí)候已經(jīng)給他賦值了裤园。
如果函數(shù)有多個(gè)參數(shù),中間以逗號(hào)隔開(kāi)够吩。理論上函數(shù)可以有無(wú)限個(gè)參數(shù),但是實(shí)際使用中一般不超過(guò)5個(gè)丈氓。
*/
echo '美女<br />';
//調(diào)用函數(shù)的時(shí)候相當(dāng)于將實(shí)際參數(shù)的值賦值給形式參數(shù)周循。
$a = 10;
hello_baby($a);
echo '一起吃飯<br />';
有參數(shù)有返回值
有參數(shù),有返回值
1万俗、return關(guān)鍵字湾笛,函數(shù)碰到return立馬結(jié)束
2、函數(shù)只能有一個(gè)返回值闰歪,如果要返回多個(gè)嚎研,返回一數(shù)組即可
3、函數(shù)的返回值就是return后面表達(dá)式的值
4、函數(shù)調(diào)用表達(dá)式的值就是函數(shù)的返回值
默認(rèn)參數(shù)
//默認(rèn)參數(shù)
/*
1临扮、所謂默認(rèn)參數(shù)论矾,就是在不傳遞實(shí)參的時(shí)候,形式參數(shù)使用其默認(rèn)值杆勇,寫(xiě)法是在形式參數(shù)后面寫(xiě)=某某
2贪壳、如果傳遞了實(shí)參,那么按照實(shí)參來(lái)計(jì)算
3蚜退、如果函數(shù)的形參帶默認(rèn)參數(shù)闰靴,那么我們一般都將帶默認(rèn)參數(shù)的形式參數(shù)寫(xiě)到最后
*/
注意事項(xiàng)
函數(shù)以function開(kāi)始
function后面接空格,空格后接函數(shù)名
函數(shù)名與變量命名規(guī)則基本一樣钻注,但是不同的是:函數(shù)名不區(qū)分大小寫(xiě)
函數(shù)名后接括號(hào)蚂且,括號(hào)內(nèi)跟參數(shù)(其實(shí)就是變量)
如果有參數(shù)的話,參數(shù)后可以接(=)等號(hào)幅恋,等號(hào)接默認(rèn)值
函數(shù)后的參數(shù)變量杏死,主要功能是把函數(shù)體外的變量值,傳入函數(shù)體內(nèi)來(lái)使用
函數(shù)體的變量(形參)和函數(shù)體外的變量(實(shí)參)通常是兩個(gè)不同的變量佳遣。
函數(shù)可以有返回值也可以沒(méi)有返回值识埋,使用return關(guān)鍵字返回。
return后接空格零渐,空格后接返回值窒舟,若執(zhí)行return,其 后的代碼均不執(zhí)行诵盼。
函數(shù)的定義與調(diào)用沒(méi)有順序關(guān)系惠豺,可以在定義處之前的位置調(diào)用
函數(shù)不能被定義兩次,即函數(shù)不能被重載
3风宁、作用域
一個(gè)變量的作用范圍洁墙,或者叫做一個(gè)變量的生命周期
內(nèi)部變量
外部變量
內(nèi)部變量:就是在函數(shù)體內(nèi)的變量,內(nèi)部變量的作用域只在函數(shù)體內(nèi)有效戒财,函數(shù)執(zhí)行完畢之后热监,內(nèi)部變量就會(huì)被銷(xiāo)毀掉
外部變量:外部變量就是在函數(shù)體外的變量,外部變量不能再函數(shù)體內(nèi)使用饮寞,內(nèi)部變量也不能在函數(shù)體外使用
內(nèi)部變量可以和外部變量同名孝扛,但是我們一般不這么做
超全局變量
/*
如果想在函數(shù)內(nèi)部使用外部變量
1、global $a; (不推薦使用)
相當(dāng)于使用的就是外部的$a,所以函數(shù)里面修改了之后幽崩,外部也已經(jīng)被修改
2苦始、使用超全局變量 (推薦使用這種方法)
$GLOBALS $_GET $_POST $_FILE $_COOKIE $_SESSION
*/
//global $a;
//$a = 300;
//將外部變量的值賦給一個(gè)內(nèi)部變量,內(nèi)部變量被修改之后,外部變量沒(méi)有被修改
//$a = $GLOBALS['anglebaby'];
//$a = 300;
//直接修改的就是外部變量
$GLOBALS['anglebaby'] = 300;
echo $GLOBALS['anglebaby'].'<br />';
靜態(tài)變量
/*
在程序開(kāi)始之前慌申,$a這個(gè)變量已經(jīng)存在陌选,這個(gè)變量只會(huì)被初始化1次,再往后他會(huì)記錄上一次的值,函數(shù)調(diào)用結(jié)束之后咨油,static變量不會(huì)被銷(xiāo)毀您炉。
*/
static $a = 3;
4、內(nèi)部函數(shù)
基本使用
注意事項(xiàng)
function abc()
{
static $a = 0;
//def(); 在內(nèi)部函數(shù)定義之前不能使用
//if ($a == 0) {
//if (!function_exists('def')) {
if (!is_callable('def')) {
function def()
{
echo 'hello';
}
$a++;
}
def();
}
/*
1臼勉、有內(nèi)部函數(shù)的函數(shù)邻吭,只能被調(diào)用1次。內(nèi)部函數(shù)是為包含他的函數(shù)使用的宴霸。如果被包含函數(shù)調(diào)用了一次囱晴,那么內(nèi)部函數(shù)就已經(jīng)被定義過(guò)了,就可以使用了瓢谢。
2畸写、內(nèi)部函數(shù)只能在定義之后使用,在定義之前不能使用該內(nèi)部函數(shù)氓扛。
3枯芬、如何解決abc這個(gè)函數(shù)只能調(diào)用1次呢?
1采郎、使用靜態(tài)變量
2千所、使用判斷函數(shù)是否存在的函數(shù)
3、判斷函數(shù)是否可以被調(diào)用函數(shù)
*/