91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何在PHP中對函數進行聲明與使用

發布時間:2021-01-14 15:18:29 來源:億速云 閱讀:192 作者:Leah 欄目:開發技術

如何在PHP中對函數進行聲明與使用?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

  函數

 1.  函數名是標識符之一,只能有字母數字下劃線,開頭不能是數字;

     函數名的命名,必須符合“小駝峰法則”FUNC(),func(),Func();

     函數名不區分大小寫;

     函數名不能與已有函數同名,不能與內置函數名同名;

 2.   function_exists("func");用于檢測函數是否已經聲明;

      注意傳入的函數名,必須是字符串格式,返回結果為true/false;

      echo打印時,true為1,false不顯示;

                        [php中變量的作用域]

  1.局部變量:聲明在函數內部的變量,稱為局部變量,只在函數內部使用,函數外如需使用,需在函數中使用return關鍵字返回;

  2.全局變量:聲明在函數外部的變量,稱為全局變量;

  3.(較為常用)函數中使用變量默認使用局部變量,如果需在函數中使用全局變量,需要使用global關鍵字將全局變量引入使用;

   函數中的變量名,如果與全局變量名重復,global之上,為函數的局部變量,global之下為函數的全局變量;

 4.$GLOBALS[''] 全局數組;

    $GLOBALS['a3'] 數組,是PHP給我們內置的全局數組,可以直接給數組添加值,無論在函數內外聲明,均可在任何地方直接使用;eg:$GLOBALS['a3'] =10;

  5.函數中使用全局變量,還有一種方式:通過給參數傳參,可以在函數內部使用全局變量,但是傳遞以后的參數是局部變量,內部改變,外部不會改變,除非傳遞的參數是地址.function func($a1,&$a2){}func($a1,$a2);

  (原因)  $a1是局部變量,內部改變,外部不會改變,$a2也是內部變量地址,內部改變,外部也改變;

          如果函數的形參,出現了取地址符號,則調用函數時,實參必須是變量,而不能是字面量 ;

           eg:func($a1,$a2)對的 func($a1,2)錯的

                                             【靜態變量】

  靜態變量:使用static關鍵字聲明,static $num=10;

  靜態變量的特點:

     靜態變量在函數第一次加載的時候進行聲明;

     函數使用完不會立即釋放靜態變量,靜態變量在整個腳本執行過程中只會聲明一次;

     同一函數多次調用,共享同一個靜態變量。

                                           [函數的參數傳遞方式]

  在PHP中實參的個數只能比形參多,不能比形參少,否則會報錯

 1.常規參數傳遞:

  function fun($a){
  $a+=10;
  return $a;
  }
 echo fun(10);

 2.引用類型的參數:

  $a=10;
  function func(&$a){
  $a+=10;
  }func($b);

   引用參數傳遞,函數內部修改變量,函數外同步變化;

   形參為引用參數,實參只能是變量,不能是字面量。

3.默認參數:

  function func($a,$b=10){
  return $a+$b;
  }
  echo func(30);  //$b的默認參數是10

   如果參數中既有默認參數,又有非默認參數,那么,默認參數列表必須要在非默認參數列表的后面,即要保證非默認參數的賦值順序.    

func_get_args();  //取所有參數列表(數組)
  func_num_args();  //取所有參數的總個數,相當于count(func_num_args());
  func_get_arg(0);  //根據下表,取每個參數

                                 [變量函數 ]

  將一個函數名,轉為字符串后,賦給一個變量。這個變量,就是我們所說的變量函數,可以加()調用函數內容;
                function func(){ }---->fun="func",----->func( );

                                 [回調函數]

   1.使用變量函數,自定義回調函數

function($func){func();}-->function f(){}--->func("f");

   2使用call_user_func_array和call_user_func自定義回調函數;

     兩個函數的第一個參數,均為回調函數,表示執行當前回調;

     不同點在于:call_user_func_array()第二個參數為數組,并將數組的每一個值賦給回調函數的參數列表,相當于js中的apply(); 而,call_user_func,是將回調函數的參數列表,直接展開寫到第2-多個參數中,相當于js中的call();
    eg:call_user_func_array("func",array(1,2,3));--->func(1,2,3);
    call_user_func("func" 1,2,3);---->func(1,2,3);

                                [ 匿名函數]   

    由于變量函數在調用時存在多種調用方式,$fun()/func()所以為了讓函數的調用更為統一,才產生了匿名函數。
    聲明匿名函數函數體后面的;必不可少!!!

    匿名函數本身也是變量,用var_dump檢測為object類型;

常規函數:

function func(){
   $fun="func"
 }
 $fun();//func();

匿名函數:

$func=function($a){
 echo "我是匿名函數{$a}<br/>";
  };    //聲明匿名函數函數體后面的;必不可少
 $func(10);
 var_dump($func);

例題:計算一個數的階層:

function jiec($num){
  static $jie=1;  //函數執行完不會立即釋放
  if($num>0){
    $jie*=$num;  //3
    jiec(--$num);
  }
  return $jie;
}
 echo jiec(10);

                                [遞歸函數]

指的是在函數內部,調用函數自身的操作;當外層函數體中,遇到自身函數調用,繼續進入內層函數執行,而自身函數的后半部分暫不執行,知道最內層函數執行完以后,在逐步向外執行;

function func($num){
   echo $num."<br/>";
  if($num>0){
    func($num-1);
  //func(--$num);  試一試又不一樣的結果喲!
  //func($num--);
  }
  echo $num."<br/>";
 }func(10);

                                [include/require]

   1.兩者的作用就是用于引入外部的PHP文件到當前文件中:include 'a.php';include ('a.php');

   2.兩者的區別:(對于錯誤的處理不同)當引入文件錯誤時,include會產生警告,并不影響后續代碼的執行,而require會產生錯誤,后續代碼不再執行;

   3.一般當用于在文件最上方導入某些文件時,使用require導入,如果失敗,則不執行文件;

     如果是在某些分支條件中,導入執行某些操作,一旦報錯不影響執行結果。

   4.include_once和require_once表示:文件只能導入一次,如果多次調用函數,則后面的文件會判斷文件是否導入,再決定是否導入新文件。

     (檢測文件是否導入時只關心文件是否已經導入,并不關心使用何種方式導入的。)

   5.include/require可以導入各種類型的文件,相當于在當前文件copy了一份,但是copy過程中,PHP引擎會進行適當的編譯,確保不會出錯。

   6.include和require是函數也是指令!PHP對于很多常用函數,會提供執行的寫法,eg:函數寫法echo("111");指令寫echo "111";

關于如何在PHP中對函數進行聲明與使用問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

始兴县| 蕉岭县| 莲花县| 长汀县| 聂拉木县| 镇雄县| 城固县| 珠海市| 远安县| 阜南县| 乐平市| 昌平区| 西畴县| 营口市| 沐川县| 萝北县| 那曲县| 津南区| 东明县| 酒泉市| 金坛市| 南江县| 开阳县| 格尔木市| 通化县| 平南县| 南澳县| 靖西县| 台前县| 济源市| 井冈山市| 弋阳县| 洞头县| 内丘县| 河东区| 水城县| 雷波县| 开鲁县| 永仁县| 临颍县| 岚皋县|