1.? 字符串運算
字符串運算符只有? .(點) ?? 。它將兩個字符串連接起來,如:
$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ù)值需要相等,類型也需要相同。? 不恒等為:只要數(shù)值不相等或者類型不相同。
3. 錯誤控制運算符 @
? 它可以屏蔽掉一些報錯信息,而不影響輸出結(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ù) 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;
說明:按值傳遞在函數(shù)內(nèi)部對形參進行操作是不影響到外部的實參的值的。
b. 按引用傳遞方式(&):
按引用傳遞就是將實參的內(nèi)存地址傳遞給形參,那么此時實參和形參同時指向的是同一塊內(nèi)存地址,這時,在函數(shù)內(nèi)部的對形參的所有操作將會影響到實參的值,返回后,實參的值會發(fā)生變化。引用傳遞方式就是傳值時在原基礎(chǔ)上加 &。
如:
function foo(&$m) {
$m = $m*100;
return $m;
}
$n = 10;
echo foo($n);? // 輸出結(jié)果為: 1000
echo $n;? // 輸出結(jié)果為: 1000;
c. 默認傳值
?還有一種設(shè)置參數(shù)的方式,即可選參數(shù),可以指定某個參數(shù)為可選參數(shù),為了方便,將可選參數(shù)房子參數(shù)列表末尾,并且指定其默認值為空,即可以不寫;如:
解釋一下什么叫可選參數(shù):即可以給它傳值,也可以不給它傳值,根據(jù)實際需要來傳值,且一個函數(shù)中可以有多個可選參數(shù),當(dāng)然如果沒有給該可選參數(shù)設(shè)置默認值時,當(dāng)沒給它傳值,此時該變量值默認就為0; 若給可選參數(shù)設(shè)置了默認值,則當(dāng)沒給該可選參數(shù)傳遞值時,該可選參數(shù)值就是設(shè)置的數(shù)值。
例1:
function foo($num,$tax="") { // 此時的變量$tax即是可選參數(shù)默認值為0
? $num = $num * $tax +100;
? echo $num; // 100*0 + 100 = 100
}
foo(100); // 調(diào)用了foo()函數(shù),但沒有給可選參數(shù)賦值
例2:
function foo($num,$tax="0.25") { // 此時的變量$tax即是可選參數(shù)默認值為0.25
$num = $num * $tax +100;
echo $num; // 100*0.25 + 100 = 125
}
foo(100);// 調(diào)用了foo()函數(shù),沒有給可選參數(shù)賦值
例3:
function foo($num,$tax="") { // 此時的變量$tax即是可選參數(shù)默認值為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ù)的概念。這意味著如果一個變量后面有圓括號,php就會尋找與變量的值(注意:是變量的值)同名的函數(shù),并且會嘗試去執(zhí)行它。這個可以被用于實現(xiàn)回調(diào)函數(shù),函數(shù)表等等。
變量函數(shù)不能用于語言結(jié)構(gòu),也就是說系統(tǒng)碰到語言結(jié)構(gòu)的是不會實現(xiàn)以上說的。語言結(jié)構(gòu)如:echo(),print(), unset() , empty(),include(),require()等 。
舉個變量函數(shù)例子:
function test()? {
?? echo "變量函數(shù)";
}
$a = 'test';
$a('test');
7.? 對函數(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();? ? // 此時變量$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 對函數(shù)foo()的引用。