1.? 字符串運(yùn)算
字符串運(yùn)算符只有? .(點(diǎn)) ?? 粗悯。它將兩個(gè)字符串連接起來(lái),如:
$n = "3.1415926r*r";? $m = 1;? ? $nm =? $n.$m;? 結(jié)果為: "3.1415926r*r1"
$n = "3.1415926r*r";? $m = 1;? ? $nm =? $n+$m;? 結(jié)果為:3.1415926+1 = 4.1415926扔亥;
2. 恒等于不恒等
恒等為:“===” 而姐; 不恒等為“葬荷!==”销斟; 恒等為:不只數(shù)值需要相等,類(lèi)型也需要相同测暗。? 不恒等為:只要數(shù)值不相等或者類(lèi)型不相同央串。
3. 錯(cuò)誤控制運(yùn)算符 @
? 它可以屏蔽掉一些報(bào)錯(cuò)信息,而不影響輸出結(jié)果偷溺。
4. 調(diào)用函數(shù)
function foo($num){
return "$num=.$num"
}?
echo foo(10); 調(diào)用該函數(shù)并輸出蹋辅;
5. 函數(shù)間傳遞參數(shù)
??? 在調(diào)用函數(shù)時(shí),需要向函數(shù)傳遞參數(shù)挫掏,被傳入的參數(shù)叫實(shí)參侦另, 而函數(shù)定義的參數(shù)叫形參,參數(shù)傳遞的方式有:按值傳遞尉共, 按引用傳遞和 默認(rèn)參數(shù) 3種褒傅;
a.按值傳遞 如:
function metric($m) {? // 這里的$m即是形參
$m = $m *2 +100;
echo "函數(shù)內(nèi)的:\$m = ".$m;???? // 輸出:? 函數(shù)內(nèi)$m = 102;
}
$m = 1袄友;
metric($m);??????
echo "函數(shù)外的\$m=".$m;???? // 輸出:函數(shù)外$m=1;
說(shuō)明:按值傳遞在函數(shù)內(nèi)部對(duì)形參進(jìn)行操作是不影響到外部的實(shí)參的值的殿托。
b. 按引用傳遞方式(&):
按引用傳遞就是將實(shí)參的內(nèi)存地址傳遞給形參,那么此時(shí)實(shí)參和形參同時(shí)指向的是同一塊內(nèi)存地址剧蚣,這時(shí)支竹,在函數(shù)內(nèi)部的對(duì)形參的所有操作將會(huì)影響到實(shí)參的值,返回后鸠按,實(shí)參的值會(huì)發(fā)生變化礼搁。引用傳遞方式就是傳值時(shí)在原基礎(chǔ)上加 &。
如:
function foo(&$m) {
$m = $m*100;
return $m;
}
$n = 10;
echo foo($n);? // 輸出結(jié)果為: 1000
echo $n;? // 輸出結(jié)果為: 1000目尖;
c. 默認(rèn)傳值
?還有一種設(shè)置參數(shù)的方式馒吴,即可選參數(shù),可以指定某個(gè)參數(shù)為可選參數(shù)瑟曲,為了方便饮戳,將可選參數(shù)房子參數(shù)列表末尾,并且指定其默認(rèn)值為空洞拨,即可以不寫(xiě)扯罐;如:
解釋一下什么叫可選參數(shù):即可以給它傳值,也可以不給它傳值烦衣,根據(jù)實(shí)際需要來(lái)傳值篮赢,且一個(gè)函數(shù)中可以有多個(gè)可選參數(shù)齿椅,當(dāng)然如果沒(méi)有給該可選參數(shù)設(shè)置默認(rèn)值時(shí)琉挖,當(dāng)沒(méi)給它傳值启泣,此時(shí)該變量值默認(rèn)就為0; 若給可選參數(shù)設(shè)置了默認(rèn)值示辈,則當(dāng)沒(méi)給該可選參數(shù)傳遞值時(shí)寥茫,該可選參數(shù)值就是設(shè)置的數(shù)值。
例1:
function foo($num,$tax="") { // 此時(shí)的變量$tax即是可選參數(shù)默認(rèn)值為0
? $num = $num * $tax +100;
? echo $num; // 100*0 + 100 = 100
}
foo(100); // 調(diào)用了foo()函數(shù)矾麻,但沒(méi)有給可選參數(shù)賦值
例2:
function foo($num,$tax="0.25") { // 此時(shí)的變量$tax即是可選參數(shù)默認(rèn)值為0.25
$num = $num * $tax +100;
echo $num; // 100*0.25 + 100 = 125
}
foo(100);// 調(diào)用了foo()函數(shù)纱耻,沒(méi)有給可選參數(shù)賦值
例3:
function foo($num,$tax="") { // 此時(shí)的變量$tax即是可選參數(shù)默認(rèn)值為0
$num = $num * $tax +100;
echo $num; // 100*0.5 + 100 = 150
}
foo(100,0.5);// 調(diào)用了foo()函數(shù),給可選參數(shù)賦值
6.? 變量函數(shù)
php支持變量函數(shù)的概念险耀。這意味著如果一個(gè)變量后面有圓括號(hào)弄喘,php就會(huì)尋找與變量的值(注意:是變量的值)同名的函數(shù),并且會(huì)嘗試去執(zhí)行它甩牺。這個(gè)可以被用于實(shí)現(xiàn)回調(diào)函數(shù)蘑志,函數(shù)表等等。
變量函數(shù)不能用于語(yǔ)言結(jié)構(gòu)贬派,也就是說(shuō)系統(tǒng)碰到語(yǔ)言結(jié)構(gòu)的是不會(huì)實(shí)現(xiàn)以上說(shuō)的急但。語(yǔ)言結(jié)構(gòu)如:echo(),print(), unset() , empty(),include(),require()等 搞乏。
舉個(gè)變量函數(shù)例子:
function test()? {
?? echo "變量函數(shù)";
}
$a = 'test';
$a('test');
7.? 對(duì)函數(shù)的引用
? 引用不僅可以用于普通的變量波桩,函數(shù)參數(shù),也可用于函數(shù)本身请敦。
function &foo(){? ? ??
static? $num = 0;??
$num ++;??
return $num;
}
echo foo(); // 結(jié)果:1
$n = foo();
echo $n.'<br>';? // 結(jié)果 2
$n = &foo();? ? // 此時(shí)變量$n 引用了函數(shù)foo()镐躲,即$n 指向了函數(shù)的內(nèi)存地址,即$n就等于了return的變量值也就是$n = $num侍筛。
$n = 6;? ? // $n=$num=6;??
echo foo(); // 結(jié)果7
能引用也也就能取消引用萤皂,使用unset()函數(shù),例如:unset($n);就能取消$n 對(duì)函數(shù)foo()的引用勾笆。