函數(shù)定義:1.函數(shù)是一個(gè)被命名的,2.獨(dú)立的代碼段,3.函數(shù)執(zhí)行特定任務(wù),4.并可以給調(diào)用它的程序返回一個(gè)值.
函數(shù)的優(yōu)點(diǎn):1.提高程序的重用性,2.提高程序的可維護(hù)性,3.可以提高開發(fā)效率,4.提高軟件的可靠性,5.控制程序的復(fù)雜性.
函數(shù)的聲明:
- function 函數(shù)名(){
- }
- function 函數(shù)名(參數(shù)1,參數(shù)2,參數(shù)...)
- {
- 函數(shù)體
- }
- function 函數(shù)名()
- {
- 函數(shù)體;
- 返回值;
- }
- function 函數(shù)名(參數(shù)列表...)
- {
- 函數(shù)體;
- 返回值
- }
注意:
一、函數(shù)必須調(diào)用才能執(zhí)行,可以在聲明之前調(diào)用,也可以在聲明之后調(diào)用.
二、函數(shù)名命名和變量一樣,aaa bbb ccc aaaBbbCcc(第一單詞小寫,以后每個(gè)單詞首字母大寫)
三、函數(shù)在聲明時(shí)不能重名
四、可以通過向函數(shù)傳遞參數(shù),改變函數(shù)的行為
形參:在聲明函數(shù)時(shí),聲明的參數(shù),參數(shù)就是變量,多個(gè)參數(shù)用,分開
實(shí)參:調(diào)用函數(shù)時(shí)傳給形參數(shù)值(數(shù)據(jù),也可以是變量)
五、如果沒有返回值則稱為過程
六、通過使用return語句返回?cái)?shù)據(jù)
七、函數(shù)執(zhí)行到return語句就結(jié)束,不要再這個(gè)語句后寫代碼,也可以用return結(jié)束函數(shù)的執(zhí)行.
函數(shù)名的作用:
1.調(diào)用函數(shù),開始執(zhí)行函數(shù)
2.可以向函數(shù)中傳遞數(shù)據(jù)
3.函數(shù)名就是返回的值
PHP 函數(shù):所有的函數(shù)都使用關(guān)鍵詞 "function()" 來開始.
命名函數(shù) - 函數(shù)的名稱應(yīng)該提示出它的功能,函數(shù)名稱以字母或下劃線開頭.添加 "{" - 開口的花括號之后的部分是函數(shù)的代碼.
插入函數(shù)代碼,添加一個(gè) "}" - 函數(shù)通過關(guān)閉花括號來結(jié)束.
- <html>
- <body>
- <?php
- function writeMyName()
- {
- echo "David Yang";
- }
- writeMyName();
- ?>
- </body>
- </html>
另一種輸出方式,現(xiàn)在,我們要在 PHP 腳本中使用這個(gè)函數(shù)了:
- <html>
- <body>
- <?php
- function writeMyName()
- {
- echo "David Yang";
- }
- echo "Hello world!<br />";
- echo "My name is ";
- writeMyName();
- echo ".<br />That's right, ";
- writeMyName();
- echo " is my name.";
- ?>
- </body>
- </html>
- //以上代碼的輸出:
- Hello world!
- My name is David Yang.
- That's right, David Yang is my name
函數(shù)引用&:
- function &c()
- {
- }
&c是什么意思,有什么好處與壞處 這個(gè)我也不明白
- function c(&$var)
- {
- $GLOBALS['MALL'] =&$var;
- }
&$var和普通傳值有什么區(qū)別,這個(gè)是引用的意思,可以在函數(shù)內(nèi)部修改$var的值,舉個(gè)例子:
- function c($var){
- $var=$var+1;
- }
- $var=10;
- c($var);
echo $var;這個(gè)輸出是10,如果函數(shù)改成function c(&$var){}
系統(tǒng)函數(shù)用法:PHP數(shù)組的交集array_intersect(),array_intersect_assoc(),array_inter_key()函數(shù)的小問題,求兩個(gè)數(shù)組的交集問題可以使用array_intersect(),array_inersect_assoc,array_intersect_key來實(shí)現(xiàn),其中array_intersect()函數(shù)是求兩個(gè)數(shù)的交集,返回一個(gè)交集共有元素的數(shù)組(只是數(shù)組值得比較)、array_intersect_assoc()函數(shù)是將鍵值和值綁定,一起比較交集部分、array_intersect_key()函數(shù)是將兩個(gè)數(shù)組的鍵值進(jìn)行比較,返回鍵值交集的數(shù)組.
但實(shí)際應(yīng)用中也遇到了一些小問題,正如下,實(shí)例:
- <?PHP
- $array = array("red"=>"Red","green"=>"red4","Red15"=>"Red",7=>"Level","Width"=>"Red","azzzz1"=>"art","peak"=>158);
- $array1 = array("red"=>"Red2","greena"=>"red","Red15"=>"Red",7=>"Level","Width"=>"Red","azzzz"=>"art","peak"=>158);
- $num = array_intersect($array,$array1);
- print_r ($num); echo "<br />";
- $num = array_intersect_assoc($array,$array1);
- print_r($num); echo "<br />";
- //開源代碼phpfensi.com
- $num = array_intersect_key($array,$array1);
- print_r ($num);
- ?>
- //運(yùn)行結(jié)果:
- Array ( [red] => Red [Red15] => Red [7] => Level [Width] => Red [azzzz1] => art [peak] => 158 ) Array ( [Red15] => Red [7] => Level [Width] => Red [peak] => 158 ) Array ( [red] => Red [Red15] => Red [7] => Level [Width] => Red [peak] => 158 )
總結(jié):
1.array_intersect()函數(shù)進(jìn)行的比較只有數(shù)組值的比較,而且存在如”Red“和”Red2“比較時(shí)會(huì)返回"Red",反之則不會(huì)返回"Red2";
2.array_intersect_assoc()函數(shù)是將數(shù)組的值與鍵值一起比較,而且不會(huì)存在array_intersect的情況,適用于較嚴(yán)格的比較;
3.array_intersect_key()函數(shù)適用于比較兩個(gè)數(shù)組鍵值的交集,返回的并不只有鍵值,而是鍵值和對應(yīng)的數(shù)組值
實(shí)例:
轉(zhuǎn)載請注明來源:php函數(shù)定義與函數(shù)&引用用法
- <?php
- $a = array(
- 'a' => '你好',
- 'b' => 'bb'
- );
- //header('Content-Type:application/json; charset=UTF-8');
- echo json_encode($a)."n";
- function replace_unicode_escape_sequence($match)
- {
- return mb_convert_encoding(pack('H*', $match[1]), 'UTF-8', 'UCS-2BE');
- }
- echo preg_replace_callback('/\u([0-9a-f]{4})/i','replace_unicode_escape_sequence',json_encode($a))."n";
- ?>
哈爾濱品用軟件有限公司致力于為哈爾濱的中小企業(yè)制作大氣、美觀的優(yōu)秀網(wǎng)站,并且能夠搭建符合百度排名規(guī)范的網(wǎng)站基底,使您的網(wǎng)站無需額外費(fèi)用,即可穩(wěn)步提升排名至首頁。歡迎體驗(yàn)最佳的哈爾濱網(wǎng)站建設(shè)。
