99偷拍视频精品区一区二,口述久久久久久久久久久久,国产精品夫妇激情啪发布,成人永久免费网站在线观看,国产精品高清免费在线,青青草在线观看视频观看,久久久久久国产一区,天天婷婷久久18禁,日韩动漫av在线播放直播

PHP函數(shù)介紹

PHP函數(shù)介紹

沿灘網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)建站!從網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營維護(hù)。創(chuàng)新互聯(lián)建站公司2013年成立到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)建站


基本使用:

函數(shù)定義形式:

        function 函數(shù)名(形參1,形參2,...) {

            //函數(shù)體(代碼塊);

        }

    函數(shù)調(diào)用形式:

        本質(zhì)上就是使用一個名字來達(dá)到執(zhí)行其中函數(shù)中的的作用。通常可以分兩種情形的調(diào)用:

        第一種:沒有返回值的函數(shù),則調(diào)用語句是獨(dú)立語句

            函數(shù)名(實(shí)參1,實(shí)參2,...); //實(shí)參個數(shù)應(yīng)該跟形參有匹配性

        第二種:有返回值的函數(shù),則調(diào)用語句,通常會“混雜”在別的語句中,并將該調(diào)用語句當(dāng)作一個“數(shù)據(jù)”來使用:

            A: $v1 = 函數(shù)名(); //賦值給其它變量,這里省略實(shí)參語法,下同

            B: $v1 = 函數(shù)名()*3+6; //參與運(yùn)算,然后再賦值

            C: echo 函數(shù)名(); //直接輸出

            D: echo 函數(shù)名()*3+6; //參與運(yùn)算,然后再輸出

            E: $v1 = 函數(shù)名2(函數(shù)名(),實(shí)參2,實(shí)參3,...); //當(dāng)作實(shí)參使用

函數(shù)調(diào)用流程分析:

    開始調(diào)用:實(shí)際參數(shù)傳數(shù)據(jù)給形式參數(shù)

    程序執(zhí)行流程進(jìn)入到函數(shù)中(一個獨(dú)立的運(yùn)行空間),跟全局執(zhí)行空間是隔離的

    按常規(guī)的程序邏輯執(zhí)行函數(shù)中的代碼

    如果碰到return語句,則終止函數(shù)的執(zhí)行,跳回函數(shù)開始調(diào)用的位置

    如果執(zhí)行到函數(shù)的最后位置,也同樣跳回函數(shù)開始調(diào)用的位置

其運(yùn)行流程原理圖如下:

PHP函數(shù)介紹

函數(shù)參數(shù)問題:

    一個函數(shù),

    在定義時,有形式參數(shù)(形參:parameter)

        1:形參一定是一個變量名,

        2:該變量名只能是在該函數(shù)中有效的變量名,

        3:而且只在該函數(shù)調(diào)用并執(zhí)行時有效,函數(shù)結(jié)束,通常這些變量也就“銷毀”

    在調(diào)用時有實(shí)際參數(shù)(實(shí)參:argument)

        實(shí)參就是一個“實(shí)際數(shù)據(jù)”,該數(shù)據(jù)可以是一個“直接數(shù)據(jù)”(比如5,"abc"),也可以是一個變量中存儲的數(shù)據(jù)。

        實(shí)參的作用是將其數(shù)據(jù)”賦值給“形參變量

        實(shí)參跟形參之間通常應(yīng)該有個“一一對應(yīng)”關(guān)系

    默認(rèn)值參數(shù):

        定義一個函數(shù)的時候,在形式參數(shù)的位置,可以給形式參數(shù)設(shè)定默認(rèn)值,此時就可以稱為默認(rèn)值參數(shù)。比如:

PHP函數(shù)介紹

    

注意:

    默認(rèn)值不能是對象或資源類型

    默認(rèn)值只能是常量表達(dá)式,或常量,不能是變量

即:如下語法是正確的:function f1($v = 3) {}, function f1($v = __LINE__) {},

    如下語法是錯誤的:function f1($v = 3+1) {} , $m = 3,function f1($v = $m) {},

函數(shù)的參數(shù)傳值問題:

    實(shí)際上,函數(shù)的參數(shù)傳值問題,跟變量之間的傳值是一樣的規(guī)則(模式):默認(rèn)是值傳遞。

    如果實(shí)參本身就是“直接數(shù)據(jù)”,則不存在傳值問題,而是簡單的“賦值”

    傳值問題只發(fā)生在實(shí)參是變量的情形:

    PHP函數(shù)介紹

    我們也可以讓某個參數(shù)(形參)以引用傳遞的方式來傳值:

    引用傳遞的形參(實(shí)參),在函數(shù)內(nèi)部改變其值,在函數(shù)外面的實(shí)參,也會相應(yīng)做修改

    PHP函數(shù)介紹

    注意:如果某個形參設(shè)定為引用傳遞,此時,實(shí)參只能使用變量,否則會出現(xiàn)語法錯誤,如:

    PHP函數(shù)介紹

參數(shù)的數(shù)量問題:

   1:函數(shù)的參數(shù)的數(shù)量可以是0個或多個 -- 具體多少個,不是語法問題,而是應(yīng)用問題

    2:通常,實(shí)際參數(shù)的數(shù)量應(yīng)該跟形式參數(shù)的數(shù)量一致

    3:但是,在第二條的基礎(chǔ)上,如果形式參數(shù)中有默認(rèn)值,則實(shí)際參數(shù)的對應(yīng)項(xiàng)可以少省略   

        即:實(shí)參的個數(shù),至少應(yīng)該不少于形參中的非默認(rèn)值參數(shù)的個數(shù)

但:我們還有一種特殊的處理函數(shù)參數(shù)的用法:自由參數(shù)數(shù)量

    定義時可以不給定形參,但調(diào)用時,卻又可以給定任何個數(shù)的實(shí)參

在系統(tǒng)中,var_dump()這個函數(shù)也有同樣的使用效果:

    $var_dump($v1);

    var_dum($v1,$v2,$v3);  //這樣也是可以的

這種應(yīng)用的實(shí)現(xiàn),是依賴于系統(tǒng)中的3個系統(tǒng)函數(shù)來達(dá)到的:

    func_get_args();    //獲得一個函數(shù)的接收到的所有實(shí)參數(shù)據(jù),并結(jié)果是一個數(shù)組

    func_get_arg(n);    //獲得一個函數(shù)所接收到的第n個實(shí)參數(shù)據(jù)(n從0開始)

    func_num_args();    //獲得一個函數(shù)所接收到的所有實(shí)參數(shù)據(jù)個數(shù)

函數(shù)的返回值:

    通常來說,一個函數(shù)中使用reture語句,并其后帶一個數(shù)據(jù)(直接數(shù)據(jù),變量數(shù)據(jù),表達(dá)式結(jié)果數(shù)據(jù))則該函數(shù)就會返回該數(shù)據(jù)到“調(diào)用的位置":

    PHP函數(shù)介紹

    通常情況下,函數(shù)返回的數(shù)據(jù)都是以”值傳遞“的形式返回,函數(shù)中的變量的值”拷貝“一份,然后返回給接收的位置的相應(yīng)代碼(賦值,輸出,計(jì)算)。

    但我們也可以讓函數(shù)中的變量的數(shù)據(jù)的值,以”引用傳遞“的方式返回,形式如下:

        定義函數(shù):

            function $函數(shù)名(parameter1,parameter2,...) { //函數(shù)名前有個引用符號

                $result = 0; //初始化

                ......

                return $result; //此時返回?cái)?shù)據(jù),只能是變量

            }

        調(diào)用函數(shù):

            $v1 = $函數(shù)名(argument1,argument2,...); //引用返回的函數(shù),自然是指有返回值

    PHP函數(shù)介紹

函數(shù)的其他形式:

    1:可變函數(shù)-- 就是函數(shù)名“可變”,其實(shí)跟可變變量一樣道理

        $str1 = "f1"; //只是一個字符串,內(nèi)容為"f1"

        $v1 = $str1(3,4); //形式上看起來是一個變量后面加上括號,則其本質(zhì)是該變量的“內(nèi)容”(f1)后面加括號,即這里是調(diào)用函數(shù)f1(3,4)。實(shí)際應(yīng)用中,常常是需要根據(jù)“用戶給定”的數(shù)據(jù),來決定調(diào)用哪個函數(shù),比如:

        function jpg() {處理jpg圖};

        function png() {處理png圖};

        function gif() {處理gif圖};

        $fileName = get_fileName() {獲取用戶上傳的圖片名};

        $houzhui = get_houzhui($fileName);

        $houzhui();

    2:匿名函數(shù)-- 就是沒有名字的函數(shù),其有兩種表現(xiàn)形式:

        表現(xiàn)形式1:

            $f1 = function() {...函數(shù)體;}; //這里的匿名函數(shù)定義形式上沒有名字,但其實(shí)又將之賦值給了變量$f1;使用時,就跟“可變函數(shù)”一樣了:$v1 = $f1();

    PHP函數(shù)介紹

        表現(xiàn)形式2:

            調(diào)用其他函數(shù)(匿名函數(shù),argument1,argument2,...);

            說明:

                1:此形式的匿名函數(shù)只有定義的函數(shù)體(無函數(shù)名)

                2:此形式的匿名函數(shù)只能作為其他函數(shù)調(diào)用時的參數(shù)(其他函數(shù)通常有特定用處)

                3:此匿名函數(shù)會在調(diào)用其他函數(shù)的“過程中”被執(zhí)行。

            能夠使用(匿名)函數(shù)當(dāng)作實(shí)參的函數(shù),并不多!

            其中有一個常見的是:call_user_func_array();

            其使用形式為:

                call_user_func_array(匿名函數(shù),數(shù)組);

            含義:將數(shù)組當(dāng)作匿名函數(shù)的若干個實(shí)參,傳遞到該匿名函數(shù)中,并可以從該匿名函數(shù)中返回?cái)?shù)據(jù),執(zhí)行該匿名函數(shù)。

        PHP函數(shù)介紹 

    

變量的作用域:

    通常說作用域,有2個:

        局部作用域:只能在所定義的函數(shù)范圍內(nèi)使用

        全局作用域:在函數(shù)的“外部”范圍使用

            -- php中,局部和全局作用域是不重疊的。

            -- js中,全局作用域是包括局部作用域的。

PHP函數(shù)介紹

PHP函數(shù)介紹

    但還有兩個:

        超全局:就是函數(shù)的內(nèi)部與外部都可以使用。

                超全局變量只有系統(tǒng)內(nèi)部預(yù)定義的那幾個,我們不能在程序中創(chuàng)建超全局變量

        靜態(tài)局部作用域:其實(shí)也是局部,但多一個特征:數(shù)據(jù)能夠在函數(shù)退出后仍然保持不丟失。

局部訪問全局變量的特定語法:

    1:在局部范圍內(nèi)使用 global 關(guān)鍵字對全局變量進(jìn)行一次“聲明”,則就可以使用了

        PHP函數(shù)介紹

        說明:

            1:實(shí)際上,函數(shù)中的 global 語句,其實(shí)是創(chuàng)建了一個跟外部變量同名的局部變量,并通過“引用”的方式指向了外部變量的數(shù)據(jù)區(qū)

     PHP函數(shù)介紹

            實(shí)例:

     PHP函數(shù)介紹

           2:在函數(shù)中(局部范圍),使用$GLOBALS超全局?jǐn)?shù)組來引用(使用)全局變量

              $GLOBALS超全局?jǐn)?shù)組的作用是用于存儲所有全局變量的數(shù)據(jù):變量名為下標(biāo),變量值為對應(yīng)元素值。

     PHP函數(shù)介紹

              但通過$GLOBALS操作全局變量,是直接操作(而不是引用操作),即如果unset該對應(yīng)元素,則全局變量對應(yīng)變量也被unset掉:

     PHP函數(shù)介紹

            3:實(shí)際上,我們還可以在函數(shù)內(nèi)部直接使用$GLOBALS數(shù)組,添加元素的方式來創(chuàng)建全局變量,自然也就類似局部使用全局

       PHP函數(shù)介紹


全局訪問局部變量的特定語法:

    1:通過引用傳遞的方式向形參傳遞一個引用實(shí)參變量

            $v1 = 10;

            function f1(&$p1,$p2) {...} //$p1是函數(shù)的形參,也即就是函數(shù)的內(nèi)部(局部)變量

            $v2 = f1($v1,10); //此時我們認(rèn)為$v1就可以使用函數(shù)中$p1的值。

    2:使用函數(shù)的引用返回形式:見前面引用的方式返回?cái)?shù)據(jù)

    3:函數(shù)中使用global關(guān)鍵字來首次引用一個全局變量,則函數(shù)結(jié)束后在全局范圍就可以使用該變量了

    PHP函數(shù)介紹

    

當(dāng)前文章:PHP函數(shù)介紹
新聞來源:http://www.yijiale78.com/article26/pehjcg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動網(wǎng)站建設(shè)網(wǎng)站維護(hù)品牌網(wǎng)站制作面包屑導(dǎo)航企業(yè)網(wǎng)站制作Google

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)