您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

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

2026/6/12 6:31:02发布14次查看
当我们在写本人在经历了多次重复操作之后决定改进一下传统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 .= .$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 .= 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 .= .$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 .= n;  } 
调用方法变为
$form->addinput(      array(          'title' = 编码,          'name' = field0,          'maxlength' = 3,          'required' = true,          'width' = 100,          'tip' = 提示:编号为必填项,只能填写3位,      )  );  
经过前后php函数参数传递方法的对比可以发现:
传统的函数在需要扩展的时候改动量大,使用的时候必须按参数的顺序写,很容易出错.
改进后的函数扩展的时候可以随时增加新参数,只需要在调用时增加对应的数组键值,每个参数都一目了然,无需考虑顺序,代码可读性增强.
不过php函数参数传递方法的改进还是有缺点的,代码量增大了,需要程序员多写很多键值,还有就是函数中判断语句和三元运算语句可能会影响效率.
http://www.bkjia.com/phpjc/446329.htmlwww.bkjia.comtruehttp://www.bkjia.com/phpjc/446329.htmltecharticle当我们在写 本人在经历了多次重复操作之后决定改进一下传统php函数参数传递方法,使用数组作为参数,请看下面的例子. 先看一个传统的自...
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product