麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 語言 > PHP > 正文

PHP筆記:PHP中的函數(shù)使用函數(shù)

2024-09-04 11:49:08
字體:
供稿:網(wǎng)友

函數(shù)是一門程序中不可少的一個(gè)重要的東西,很多東西我們會(huì)做成函數(shù)這樣可以方便重復(fù)調(diào)用了,下面本文章重點(diǎn)就是介紹函數(shù)php函數(shù)用法.

一、函數(shù)的聲明

1、語法結(jié)構(gòu),代碼如下:

  1. function 函數(shù)名 (參數(shù)列表) 
  2.     函數(shù)體; //可選 
  3.     返回值; //return可選 

參數(shù)列表用逗號隔開,勿遺漏$變量符號,函數(shù)名不區(qū)分大小寫,規(guī)則與變量一致,函數(shù)調(diào)用才執(zhí)行,可先調(diào)用后聲明,函數(shù)名不能重名,包括系統(tǒng)函數(shù).

2、函數(shù)調(diào)用,代碼如下:

  1. function sum($x,$y//形參:在聲明函數(shù)時(shí)聲明的參數(shù) 
  2.     // $x = 1; //如果在函數(shù)內(nèi)對參數(shù)賦值,則會(huì)覆蓋實(shí)參。 
  3.     // $y = 2; //開源軟件:Vevb.com 
  4.     $sum = 0; 
  5.     $sum = $x + $y
  6.     return $sum//執(zhí)行到return函數(shù)結(jié)束,后面不再執(zhí)行 
  7. sum(); 
  8. sum(2,2); //實(shí)參:在調(diào)用函數(shù)時(shí)傳遞給形參的數(shù)值 
  9. echo sum(2,2); //通過return返回?cái)?shù)據(jù)可作為值使用 

二、函數(shù)中的變量

1、變量范圍

局部變量:函數(shù)內(nèi)部聲明與使用的變量

全局變量:在函數(shù)外聲明,腳本任何地方均可以使用

Tips:在PHP函數(shù)中使用全局變量,要通過global關(guān)鍵字將這個(gè)全局變量包含到函數(shù)中才能使用,代碼如下:

  1. $a = 1; 
  2. $b = 2; 
  3. function demo($a = ''
  4.     //global 須放在前面 
  5.     //global $a,$b global 可包含多個(gè)全局變量 
  6.     //$GLOBALS['a'] //聲明全局變量 方法二 
  7.     global $a
  8.     $a += 5; 
  9.     echo $a
  10. demo(); 

2、PHP靜態(tài)變量

靜態(tài)變量可以在同一個(gè)函數(shù)中多次調(diào)用中共用,靜態(tài)變量只能在函數(shù)或類中聲明,不能在全局聲明,代碼如下:

  1. function demo($a = ''
  2.     static $a = 0; //定義靜態(tài)變量 
  3.     $a++; 
  4.     echo "$a <br>"
  5. demo(); //輸出1 
  6. demo(); //輸出2 

3、變量函數(shù),代碼如下:

  1. $var = 'hello'//變量名后面右括號,就尋找與變量值同名的函數(shù) 
  2. $var(); //等價(jià)于 hello(); 

三、函數(shù)分類及聲明

1、函數(shù)分類,代碼如下:

  1. //常規(guī)函數(shù) 
  2. bool copy(string source,string dest) 
  3. //帶mixed,表示可以傳任何類型的數(shù)據(jù) 
  4. bool chown(string filename,mixed user) 
  5. //帶&參數(shù)的函數(shù),這個(gè)參數(shù)只能是變量,變量值是動(dòng)態(tài)的 
  6. //對數(shù)組進(jìn)行排序,數(shù)組的索引保持和單元的關(guān)聯(lián) 
  7. bool arsort ( array &$array [, int $sort_flags ] ) 
  8. $fruits = array('a''c''b'); 
  9. arsort($fruits); 
  10. var_dump($fruits); 
  11. //默認(rèn)函數(shù),即帶[]中括號的函數(shù),表示參數(shù)可選,若沒有傳值則使用默認(rèn)值 
  12. //如果調(diào)用沒有賦值,又沒有初值則出現(xiàn)警告 
  13. function demo($a=1,$b=2) 
  14.     #code 
  15. demo(); 
  16. //帶有...參數(shù)的函數(shù),表示可以傳任意多個(gè)參數(shù) 
  17. //在數(shù)組開頭插入一個(gè)或多個(gè)單元  
  18. int array_unshift ( array &$array , mixed $var [, mixed $... ] ) 

2、聲明多個(gè)參數(shù)函數(shù),代碼如下:

  1. function Test() 
  2.     echo func_num_args(); 
  3. Test('a','b','c');  // 3 
  4. func_get_arg():返回參數(shù)列表中的第N個(gè)參數(shù) 
  5. function Test() 
  6.     echo func_get_arg('1');  
  7. Test('a','b','c'); //b 
  8. //使用實(shí)例: 
  9. function cls_mysql() 
  10.     $mysql = func_get_args(); 
  11.     $conn = mysql_connect($mysql['0'], $mysql['1'], $mysql['2']); 
  12. cls_mysql('localhost:3306''root''123456'); 

3、函數(shù)注釋規(guī)范,代碼如下:

  1. /** 
  2.  * 用用演示函數(shù) //函數(shù)功能,決定是否使用 
  3.  *  
  4.  * @static 
  5.  * @access public 
  6.  * @param string $attributeName 屬性名稱 //函數(shù)參數(shù),決定怎樣調(diào)用 
  7.  * @return string //函數(shù)的返回值,決定調(diào)用后怎么處理 
  8.  */ 
  9. public function demo($attributeName
  10.     $attributeName = 'abc'
  11.     return $attributeName 

四、Callback 回調(diào)函數(shù)

我們自定義一個(gè)函數(shù)A,但是我們不直接去調(diào)函數(shù)A,而是在函數(shù)B中去調(diào)用函數(shù)A,函數(shù)B通過接收函數(shù)A的名字和參數(shù)來實(shí)現(xiàn)對函數(shù)A的調(diào)用,函數(shù)A稱為回調(diào)函數(shù),代碼如下:

  1. function A($x,$y
  2.     return $x*$y
  3. function B($a,$b,$fun
  4.     return $a+$b+$fun($a,$b); 
  5. echo B(2,3,"A"); 

PHP回調(diào)函數(shù)的實(shí)現(xiàn)方法

php提供了兩個(gè)內(nèi)置函數(shù)call_user_func()和call_user_func_array()提供對回調(diào)函數(shù)的支持,代碼如下:

  1. //mixed call_user_func_array 以數(shù)組的形式接收回調(diào)函數(shù)的參數(shù) 
  2. mixed call_user_func_array ( callable $callback , array $param_arr ) 
  3. call_user_func_array('f1',array('A','B')); 
  4. //call_user_func的參數(shù)個(gè)數(shù)根據(jù)回調(diào)函數(shù)的參數(shù)來確定 
  5. mixed call_user_func ( callable $callback [, mixed $parameter [, mixed $... ]] ) 
  6. call_user_func_array('f1','A','B'); 

實(shí)例代碼如下:

  1. //普通全局函數(shù) 
  2. function f1($arg1,$arg2
  3.     echo $arg1."<br>".$arg2."<br>"
  4. echo "通過call_user_func_array調(diào)用函數(shù)f1:<br>"
  5. call_user_func_array('f1',array('A','B')); 
  6. echo "通過call_user_func調(diào)用函數(shù)f1:<br>"
  7. call_user_func('f1','C','D'); 
  8. //類 
  9. class myClass 
  10.     public $name
  11.     function show($arg1
  12.     { 
  13.         echo '參數(shù)名:'.$arg1."<br>"
  14.         echo '對象中的成員名:'.$this->name; 
  15.         echo "<br>"
  16.     } 
  17.     function show1($arg1,$arg2
  18.     {   
  19.         echo $arg1."<br>".$arg2."<br>"
  20.     } 
  21.     public static function show2($arg1,$arg2)   
  22.     { 
  23.         echo $arg1."<br>".$arg2."<br>"
  24.     } 
  25. echo "調(diào)用類中非靜態(tài)成員函數(shù),該成員函數(shù)中有this調(diào)用了對象中的成員:<br>"
  26. $a = new myClass; 
  27. $a->name = 'F'
  28. call_user_func_array(array($a,'show'),array('E')); 
  29. echo "調(diào)用類中非靜態(tài)成員函數(shù),該函數(shù)沒有調(diào)用對象中的成員,沒有this:<br>"
  30. call_user_func_array(array('myClass','show1'),array('G','H')); 
  31. echo "調(diào)用類中靜態(tài)成員函數(shù):<br>"
  32. call_user_func_array(array('myClass','show2'),array('I','J')); 

五、內(nèi)部函數(shù)

在函數(shù)內(nèi)部再聲明函數(shù),目的是在函數(shù)內(nèi)部調(diào)用,用來幫助外部函數(shù)完成一些子功能.

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 天堂成人国产精品一区 | 免费国产一级特黄久久 | 亚洲影院在线播放 | 日韩视频一二三 | 综合精品视频 | 欧美亚州 | 欧美一区2区三区4区公司二百 | 天天草夜夜骑 | 精品一区二区三区日本 | 久久99精品国产自在现线 | 91精品国产综合久久久欧美 | 91黄瓜视频 | 欧美日韩亚洲视频 | 成年人国产视频 | 久久久麻豆 | 国产一区在线视频观看 | 男人的天堂色偷偷 | 成人精品免费在线观看 | 九九视屏| 伊久在线| 最新中文在线视频 | 日韩av在线资源 | 麻豆传传媒久久久爱 | 国产成人羞羞视频在线 | 免费国产羞羞网站视频 | 国产亚洲精品久久久久久久久久 | 羞羞羞羞视频 | 欧美日韩在线免费观看 | 草草视频免费观看 | 国产精品久久久久一区二区 | 亚洲91网 | 久久网国产 | 成人福利视频在线 | 亚洲精品久久久久久久久久 | 久久精品视频1 | 国产亚洲高清视频 | www.777含羞草| 福利在线小视频 | 久久精品视频3 | 中文字幕在线一 | 天天草夜夜骑 |