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

來源:互聯網
上載者:User
我們在寫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 .= "<li>\n";      $this->form .= "<label>".$title.":</label>\n";      $this->form .= "<input name=\"".$name."\" value=\"".$value."\" type=\"".$type."\" maxlength=\"".$maxlength."\" required=\"".$required."\" check=\"".$check."\" id=\"".$id."\" class=\"input\" ".$readonly." style=\"width:".$width."px;\" showName=\"".$title."\" /> ";      $this->form .= "<span class=\"tip\">".$tip."</span>\n";      $this->form .= "</li>\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 .= "<li>\n";      $this->form .= "<label>".$title.":</label>\n";      $this->form .= "<input name=\"".$name."\" value=\"".$value."\" type=\"".$type."\" maxlength=\"".$maxlength."\" required=\"".$required."\" check=\"".$check."\" id=\"".$id."\" class=\"input\" ".$readonly." style=\"width:".$width."px;\" showName=\"".$title."\" /> ";      $this->form .= "<span class=\"tip\">".$tip."</span>\n";      $this->form .= "</li>\n";  }

調用方法變為

$form->addInput(      array(          'title' = "編碼",          'name' = "field0",          'maxlength' = 3,          'required' = "true",          'width' = 100,          'tip' = "提示:編號為必填項,只能填寫3位",      )  );

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

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

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

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.