PHP函数参数传递方法的具体改进技巧分享_PHP教程

原创
2016-07-15 13:29:46 677浏览

当我们在写本人在经历了多次重复操作之后决定改进一下传统PHP函数参数传递方法,使用数组作为参数,请看下面的例子.

先看一个传统的自定义函数

  1. /**
  2. * @Purpose: 插入文本域
  3. * @Method Name: addInput()
  4. * @Parameter: str $title 表单项标题
  5. * @Parameter: str $name 元素名称
  6. * @Parameter: str $value 默认值
  7. * @Parameter: str $type 类型,默认为text,可选password
  8. * @Parameter: str $maxlength 最长输入
  9. * @Parameter: str $readonly 只读
  10. * @Parameter: str $required 是否必填,默认为false,true为必填
  11. * @Parameter: str $check 表单验证function(js)名称
  12. * @Parameter: str $id 元素id,无特殊需要时省略
  13. * @Parameter: int $width 元素宽度,单位:象素
  14. * @Parameter: str $tip 元素提示信息
  15. * @Return:
  16. */
  17. function addInput($title,$name,$value="",$type="text",$maxlength="255",
    $readonly,$
    required="false",$check,$id,$width,$tip)
  18. {
  19. $this->form .= "
  20. n"
  21. ;
  22. $this->form .= ".$title.":label>n";
  23. $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."" /> ";
  24. $this->form .= "span class="tip">".$tip."span>n";
  25. $this->form .= "
  26. n";
  27. }

这是我写的表单类中一个插入文本框的函数.

PHP函数参数传递方法的调用方法为

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

在开始的时候只预留了$title,$name,$value,$type,$maxlength,$readonly等参数,经过一段时间的使用,发现这些基本参数无法满足需求,文本框需要有js验证,需要定义CSS样式,需要增加提示信息等...

增加了$required,$check,$id,$width,$tip等参数之后发现以前所有调用此函数的地方都需要修改,增加了很多工作量.

PHP函数参数传递方法的调用方法变成

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

如果使用这个函数的地方很多的话一个一个改确实需要很长时间.

下面是我改进之后的函数

  1. function addInput($a)
  2. {
  3. if(is_array($a))
  4. {
  5. $title = $a['title'];
  6. $name = $a['name'];
  7. $value = $a['value'] ? $a['value'] : "";
  8. $type = $a['type'] ? $a['type'] : "text";
  9. $maxlength = $a['maxlength'] ? $a['maxlength'] : "255";
  10. $readonly = $a['readonly'] ? $a['readonly'] : "";
  11. $required = $a['required'] ? $a['required'] : "false";
  12. $check = $a['check'];
  13. $id = $a['id'];
  14. $width = $a['width'];
  15. $tip = $a['tip'];
  16. }
  17. $title,$name,$value="",$type="text",$maxlength="255",$readonly,$required="false",$check,$id,$width,$tip
  18. $this->form .= "
  19. n"
  20. ;
  21. $this->form .= ".$title.":label>n";
  22. $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."" /> ";
  23. $this->form .= "span class="tip">".$tip."span>n";
  24. $this->form .= "
  25. n";
  26. }

调用方法变为

  1. $form->addInput(
  2. array(
  3. 'title' = "编码",
  4. 'name' = "field0",
  5. 'maxlength' = 3,
  6. 'required' = "true",
  7. 'width' = 100,
  8. 'tip' = "提示:编号为必填项,只能填写3位",
  9. )
  10. );

经过前后PHP函数参数传递方法的对比可以发现:

传统的函数在需要扩展的时候改动量大,使用的时候必须按参数的顺序写,很容易出错.

改进后的函数扩展的时候可以随时增加新参数,只需要在调用时增加对应的数组键值,每个参数都一目了然,无需考虑顺序,代码可读性增强.

不过PHP函数参数传递方法的改进还是有缺点的,代码量增大了,需要程序员多写很多键值,还有就是函数中判断语句和三元运算语句可能会影响效率.


www.bkjia.comtruehttp://www.bkjia.com/PHPjc/446329.htmlTechArticle当我们在写 本人在经历了多次重复操作之后决定改进一下传统PHP函数参数传递方法,使用数组作为参数,请看下面的例子. 先看一个传统的自...
声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。