最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP中的函數(shù)聲明與使用詳解

 更新時間:2017年05月27日 08:54:39   作者:海*星  
這篇文章主要介紹了PHP中的函數(shù)聲明與使用,需要的朋友可以參考下

  函數(shù)

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

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

     函數(shù)名不區(qū)分大小寫;

     函數(shù)名不能與已有函數(shù)同名,不能與內(nèi)置函數(shù)名同名;

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

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

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

                        [php中變量的作用域]

  1.局部變量:聲明在函數(shù)內(nèi)部的變量,稱為局部變量,只在函數(shù)內(nèi)部使用,函數(shù)外如需使用,需在函數(shù)中使用return關(guān)鍵字返回;

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

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

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

 4.$GLOBALS[''] 全局數(shù)組;

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

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

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

          如果函數(shù)的形參,出現(xiàn)了取地址符號,則調(diào)用函數(shù)時,實參必須是變量,而不能是字面量 ;

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

                                             【靜態(tài)變量】

  靜態(tài)變量:使用static關(guān)鍵字聲明,static $num=10;

  靜態(tài)變量的特點:

     靜態(tài)變量在函數(shù)第一次加載的時候進行聲明;

     函數(shù)使用完不會立即釋放靜態(tài)變量,靜態(tài)變量在整個腳本執(zhí)行過程中只會聲明一次;

     同一函數(shù)多次調(diào)用,共享同一個靜態(tài)變量。

                                           [函數(shù)的參數(shù)傳遞方式]

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

 1.常規(guī)參數(shù)傳遞:

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

 2.引用類型的參數(shù):

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

   引用參數(shù)傳遞,函數(shù)內(nèi)部修改變量,函數(shù)外同步變化;

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

3.默認參數(shù):

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

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

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

                                 [變量函數(shù) ]

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

                                 [回調(diào)函數(shù)]

   1.使用變量函數(shù),自定義回調(diào)函數(shù)

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

   2使用call_user_func_array和call_user_func自定義回調(diào)函數(shù);

     兩個函數(shù)的第一個參數(shù),均為回調(diào)函數(shù),表示執(zhí)行當前回調(diào);

     不同點在于:call_user_func_array()第二個參數(shù)為數(shù)組,并將數(shù)組的每一個值賦給回調(diào)函數(shù)的參數(shù)列表,相當于js中的apply(); 而,call_user_func,是將回調(diào)函數(shù)的參數(shù)列表,直接展開寫到第2-多個參數(shù)中,相當于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);

                                [ 匿名函數(shù)]   

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

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

常規(guī)函數(shù):

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

匿名函數(shù):

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

例題:計算一個數(shù)的階層:

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

                                [遞歸函數(shù)]

指的是在函數(shù)內(nèi)部,調(diào)用函數(shù)自身的操作;當外層函數(shù)體中,遇到自身函數(shù)調(diào)用,繼續(xù)進入內(nèi)層函數(shù)執(zhí)行,而自身函數(shù)的后半部分暫不執(zhí)行,知道最內(nèi)層函數(shù)執(zhí)行完以后,在逐步向外執(zhí)行;

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

                                [include/require]

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

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

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

     如果是在某些分支條件中,導(dǎo)入執(zhí)行某些操作,一旦報錯不影響執(zhí)行結(jié)果。

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

     (檢測文件是否導(dǎo)入時只關(guān)心文件是否已經(jīng)導(dǎo)入,并不關(guān)心使用何種方式導(dǎo)入的。)

   5.include/require可以導(dǎo)入各種類型的文件,相當于在當前文件copy了一份,但是copy過程中,PHP引擎會進行適當?shù)木幾g,確保不會出錯。

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

以上所述是小編給大家介紹的PHP中的函數(shù)聲明與使用詳解,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • iOS自定義提示彈出框?qū)崿F(xiàn)類似UIAlertView的效果

    iOS自定義提示彈出框?qū)崿F(xiàn)類似UIAlertView的效果

    最近在學(xué)習(xí)iOS開發(fā),在牛刀小試的時候發(fā)現(xiàn)系統(tǒng)的UIAlertView有點不喜歡,然后就自己自定義了一個UIAlertView,基本上實現(xiàn)了系統(tǒng)的UIAlertView,可以根據(jù)項目的需求修改UIAlertView的顏色。有需要的朋友們可以參考借鑒,也可以多多指導(dǎo),下面來一起看看吧。
    2016-11-11
  • php數(shù)組中包含中文的排序方法

    php數(shù)組中包含中文的排序方法

    這篇文章主要介紹了php數(shù)組中包含中文的排序方法,需要的朋友可以參考下
    2014-06-06
  • ThinkPHP框架中使用Memcached緩存數(shù)據(jù)的方法

    ThinkPHP框架中使用Memcached緩存數(shù)據(jù)的方法

    這篇文章主要介紹了ThinkPHP框架中使用Memcached緩存數(shù)據(jù)的方法,結(jié)合實例形式分析了thinkPHP框架中Memcached緩存的設(shè)置與使用相關(guān)操作技巧,需要的朋友可以參考下
    2018-03-03
  • 一段防盜連的PHP代碼

    一段防盜連的PHP代碼

    一段防盜連的PHP代碼...
    2006-12-12
  • 在 Laravel 中動態(tài)隱藏 API 字段的方法

    在 Laravel 中動態(tài)隱藏 API 字段的方法

    這篇文章主要介紹了在 Laravel 中動態(tài)隱藏 API 字段的方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-10-10
  • ThinkPHP類似AOP思想的參數(shù)驗證的實現(xiàn)方法

    ThinkPHP類似AOP思想的參數(shù)驗證的實現(xiàn)方法

    這篇文章主要介紹了ThinkPHP類似AOP思想的參數(shù)驗證的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • 淺談PHP值mysql操作類

    淺談PHP值mysql操作類

    下面小編就為大家?guī)硪黄獪\談PHP值mysql操作類。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-06-06
  • PHP SPL標準庫之數(shù)據(jù)結(jié)構(gòu)棧(SplStack)介紹

    PHP SPL標準庫之數(shù)據(jù)結(jié)構(gòu)棧(SplStack)介紹

    這篇文章主要介紹了PHP SPL標準庫之數(shù)據(jù)結(jié)構(gòu)棧(SplStack)介紹,棧(Stack)是一種特殊的線性表,因為它只能在線性表的一端進行插入或刪除元素(即進棧和出棧),需要的朋友可以參考下
    2015-05-05
  • PHP 計算至少是其他數(shù)字兩倍的最大數(shù)的實現(xiàn)代碼

    PHP 計算至少是其他數(shù)字兩倍的最大數(shù)的實現(xiàn)代碼

    這篇文章主要介紹了PHP 計算至少是其他數(shù)字兩倍的最大數(shù),本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-05-05
  • Smarty緩存機制實例詳解【三種緩存方式】

    Smarty緩存機制實例詳解【三種緩存方式】

    這篇文章主要介紹了Smarty緩存機制,結(jié)合實例形式詳細分析了Smarty全局緩存、部分緩存及局部緩存三種緩存實現(xiàn)方式,并附帶說明了Smarty清除緩存的實現(xiàn)方式,需要的朋友可以參考下
    2019-07-07

最新評論

武乡县| 东城区| 马公市| 佛教| 苏尼特右旗| 晋宁县| 金华市| 南川市| 普格县| 平和县| 白沙| 民权县| 大竹县| 台安县| 思南县| 吉林省| 宜良县| 托克托县| 渭南市| 铁力市| 乐业县| 嘉鱼县| 滨海县| 抚顺市| 禄丰县| 南漳县| 闻喜县| 庆云县| 高邮市| 青神县| 新河县| 樟树市| 丰都县| 德令哈市| 方城县| 和政县| 蓝山县| 黔东| 巫山县| 银川市| 伽师县|