<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                ## 函數 * 為完成某一功能的程序的集合。 * 一個函數在50-100行內比較合理 * 函數可以沒有返回值 **系統函數列表** ~~~ echo '<pre>'; print_r(get_defined_functions()); ~~~ ### 概念: 1. 提高的代碼的復用性 2. 利于模塊化編程 ### 文件引入: require require_once include include_once ~~~ //3種引用方法 require 'a.php'; require ('a.php'); $ifile='a.php'; require $ifile; ~~~ **區別:** 1. require,require_once 出現錯誤,直接退出; 2. require會重復引入; 3. once會判斷是否引入過,不會重復引入,節省開銷; 5. include 如果文件出錯,雖然報錯,但程序會繼續執行 **推薦使用require和require_once** #### 引入文件流程 * 引入的文件是先執行完畢后,把結果返回給需要的頁面 * 成功引入一個文件,默認會返回1 * 被引入文件中,含有return,會在需要的頁面返回這個值 * 被引入文件中含有return ,引入過程終止,后面的內容不再執行,繼續執行主文件內容 ~~~ //a.php中 return 100; //index.php中 $a=require 'a.php'; echo $a; //100 ~~~ 項目開發: 一般用絕對路徑引用 a.獲取網站根目錄 ~~~ define('ROOT_PATH',dirname(__DIR__)); ~~~ **模板中使用循環** ~~~ <?php foreach($nav as $value):?> <h1><?php echo $value ?></h1> <?php endforeach;?> ~~~ ### 函數理解 函數可以沒有返回值 return返回值返回給調用者 調用一個函數,程序會開辟一個新棧 ![](https://box.kancloud.cn/d799c929177d9453a4bf2bbf21814039_664x455.png) ### 函數的遞歸 ![](https://box.kancloud.cn/c706c27e18edb7020ee05070696161ed_716x254.png) ### 函數細節 1. 函數的參數列表可以多個 2. 函數的參數可以是任意類型 3. 函數名和自定義變量一樣,只能是字母和下劃線 4. 函數中定義的變量是局部的,再函數外不生效 5. 函數中使用已經定義好的全局變量,使用global 6. 使用global的時候,如果外面沒有$a,則會自動創建一個全局$a變量 7. 函數靜態變量:一般在函數中定義,存放在數據的靜態區,只會被初始化一次 8. 函數的默認值:傳參的時候指定一個值,實例化的時候,如果不填寫,會用默認值,否則覆蓋默認值 9. 默認情況下,函數按值傳遞,如果希望函數的參數修改外部的變量,必須通過引用傳遞& 10. 內部函數:在函數內部聲明一個函數,在外部無法調用,類似JS閉包。只有外部函數執行后,才能使用內部函數 11. 可變函數:如果一個變量名后面有圓括號,PHP會自動尋找同名函數,并執行。可以用在回調函數中。 12. 函數的參數可以是函數: 13. 匿名函數:沒有名字的函數,通常作為回調函數用 1. 回調函數:一個函數內部又調用另一個函數,稱為回調函數。 ~~~ func_get_args(); //參數列表 func_get_arg(3); func_num_agrs();//參數個數 ~~~ static用法: ~~~ function abc(){ static $a=0; //第二次這句話不執行 $a++; echo $a; } abc(); //1 abc(); //2 ~~~ global的用法: ~~~ $a=100; function abc(){ global $a; //等價于 $a=&$GLOBALS['a']; $a=123; //外面的$a也會改變 return $a; } abc(); echo $a; ~~~ ![](https://box.kancloud.cn/734b66062a6bca19012eb274ef9330e3_281x194.png) 按引用傳遞: ~~~ $a=100; function abc(&$b){ $b=123; echo $b; } abc($a); echo $a; //123 ~~~ ![](https://box.kancloud.cn/850fb41dd0996718dc9fb03e05be9f7e_535x178.png) 函數中的unset ~~~ $a=100; function abc(&$b,&$a){ unset($b); //unset是釋放變量,干掉的是$b這個變量,但數據區的值沒有變化 } abc(); echo $a; //100 ~~~ 內部函數: ~~~ function calculator($n1,$n2){ function getSum($n1,$n2){ return $n1+$n2; } function getSub($n1,$n2){ return $n1-$n2; } return getSum($n1,$n2)+getSub($n1,$n2); } $res=calculator(3,9); getSum(2,3); //上面調用過一次,內部函數也會被運行,所以這里可以用 ~~~ 可變函數: ~~~ function box(){ echo 'abc'; } $a='box'; $a(); ~~~ 函數的參數函數: ~~~ function box(){ $a=func_num_args();//參數的總個數 echo $a; $b=func_get_args();//獲取參數列表 echo "<pre>"; print_r($b); $c=func_get_arg(2);//返回第幾個參數的值 echo $c; } ~~~ 匿名函數: 用法1: ~~~ $box=function($a,$b){ return $a+$b; }; echo $box(99,33); ~~~ 用法2:匿名函數作為回調函數,只能用一次,用完即結束 ~~~ function box($a,$b,$f){ $sum=$a+$b; echo $res=$f($sum); }; box(4,3,function($val){ return $val*2; }); ~~~ ### 變量作用域: 主要體現在函數中 局部作用域:函數內部有效 全局作用域:函數外可以用,函數內也可用通過global用 超全局作用域:在一個腳本中,所有地方都可以用,PHP預定義的變量 超全局變量: ~~~ $GLOBALS //數組,包含所有變量,預定義的和自己定義的 $SERVER $_GET $_POST $_FILES $_COOKIE $_SESSION $_REQUEST $_ENV ~~~ ### 常用的系統函數
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看