首頁  >  文章  >  後端開發  >  php中使用陣列作為參數讓效能得到最佳化的方法介紹(附程式碼)

php中使用陣列作為參數讓效能得到最佳化的方法介紹(附程式碼)

不言
不言原創
2018-08-02 17:16:542941瀏覽

我們在寫php程式碼的時候,可能經常會需要對程式碼進行升級和更改,這樣頻繁的操作,不僅會增加我們的工作量而且也會讓我們的整個程式的效能降低,所以,下面的這篇文章跟大家分享一個使用陣列進行PHP函數參數傳遞方法,這會使我們整個程式的效能都得到最佳化。

改進傳統PHP函數參數傳遞方法,使用陣列作為參數可以讓效能得到最佳化,請看下面的範例。

先看一個傳統的自訂函數:

/**  
* @Purpose:     插入文本域  
* @Method Name: addInput()  
* @Parameter:    str $title        表单项标题  
* @Parameter:    str $name        元素名称  
* @Parameter:    str $value        默认值  
* @Parameter:    str $type        类型,默认为text,可选password  
* @Parameter:    str $maxlength        最长输入  
* @Parameter:    str $readonly        只读  
* @Parameter:    str $required        是否必填,默认为false,true为必填  
* @Parameter:    str $check        表单验证function(js)名称  
* @Parameter:    str $id            元素id,无特殊需要时省略  
* @Parameter:    int $width        元素宽度,单位:象素  
* @Parameter:    str $tip        元素提示信息  
* @Return:        
*/  
function addInput($title,$name,$value="",$type="text",$maxlength="255",$readonly,$required="false",$check,$id,$width,$tip)  
{  
    $this->form .= "
  • \n"; $this->form .= "\n"; $this->form .= " "; $this->form .= "".$tip."\n"; $this->form .= "
  • \n"; }

    這是我寫的表單類別中一個插入文字方塊的函數.

    ##PHP函數參數傳遞方法的呼叫方法為

    $form->addInput("编码","field0","","text",3,"");

    在開始的時候只預留了$title,$name,$value,$type,$maxlength,$readonly等參數,經過一段時間的使用,發現這些基本參數無法滿足需求,文字方塊需要有js驗證,需要定義CSS樣式,需要增加提示訊息等...

    #增加了$required,$check,$id,$width,$tip等參數之後發現以前所有呼叫此函數的地方都需要修改,增加了很多工作量.

    PHP函數參數傳遞方法的呼叫方法變成

    $form->addInput("编码","field0","","text",3,"","true","","",100,"提示:编号为必填项,只能填写3位");

    如果使用這個函數的地方很多的話一個一個改確實需要很長時間.

    改進之後的函數:

    function addInput($a)  
    {  
        if(is_array($a))  
        {  
            $title        = $a['title'];  
            $name        = $a['name'];  
            $value        = $a['value'] ? $a['value'] : "";  
            $type        = $a['type'] ? $a['type'] : "text";  
            $maxlength    = $a['maxlength'] ? $a['maxlength'] : "255";  
            $readonly    = $a['readonly'] ? $a['readonly'] : "";  
            $required    = $a['required'] ? $a['required'] : "false";  
            $check        = $a['check'];  
            $id        = $a['id'];  
            $width        = $a['width'];  
            $tip        = $a['tip'];  
        }  
        $title,$name,$value="",$type="text",$maxlength="255",$readonly,$required="false",$check,$id,$width,$tip  
        $this->form .= "
  • \n"; $this->form .= "\n"; $this->form .= " "; $this->form .= "".$tip."\n"; $this->form .= "
  • \n"; }

    呼叫方法變成

    $form->addInput(  
        array(  
            'title' = "编码",  
            'name' = "field0",  
            'maxlength' = 3,  
            'required' = "true",  
            'width' = 100,  
            'tip' = "提示:编号为必填项,只能填写3位",  
        )  
    );

    經過前後PHP函數參數傳遞方法的對比可以發現:

    傳統的函數在需要擴展的時候改動量大,使用的時候必須按參數的順序寫,很容易出錯.

    改進後的函數擴展的時候可以隨時增加新參數,只需要在調用時增加對應的數組鍵值,每個參數都一目了然,無需考慮順序,代碼可讀性增強.

    不過PHP函數參數傳遞方法的改進還是有缺點的,程式碼量增大了,需要程式設計師多寫很多鍵值,還有就是函數中判斷語句和三元運算語句可能會影響效率。

    相關文章推薦:

    php函數與傳遞參數實例分析

    PHP在函數體中傳遞與接收參數

    以上是php中使用陣列作為參數讓效能得到最佳化的方法介紹(附程式碼)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

    陳述:
    本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn