我们在写php代码的时候,可能经常会需要对代码进行升级和更改,这样频繁的操作,不但会增加我们的工作量而且也会让我们的整个程序的性能降低,所以,下面的这篇文章给大家分享一个使用数组进行PHP函数参数传递方法,这样会使我们整个程序的性能都得到优化。
改进一下传统php函数参数传递方法,使用数组作为参数可以让性能得到优化,请看下面的例子。
先看一个传统的自定义函数:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | 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函数参数传递方法的调用方法为
1 | $form ->addInput( "编码" , "field0" , "" , "text" ,3, "" );
|
登录后复制
在开始的时候只预留了$title,$name,$value,$type,$maxlength,$readonly等参数,经过一段时间的使用,发现这些基本参数无法满足需求,文本框需要有js验证,需要定义CSS样式,需要增加提示信息等...
立即学习“PHP免费学习笔记(深入)”;
增加了$required,$check,$id,$width,$tip等参数之后发现以前所有调用此函数的地方都需要修改,增加了很多工作量.
PHP函数参数传递方法的调用方法变成
1 | $form ->addInput( "编码" , "field0" , "" , "text" ,3, "" , "true" , "" , "" ,100, "提示:编号为必填项,只能填写3位" );
|
登录后复制
如果使用这个函数的地方很多的话一个一个改确实需要很长时间.
改进之后的函数:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | 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" ;
}
|
登录后复制
调用方法变为
1 2 3 4 5 6 7 8 9 10 | $form ->addInput(
array (
'title' = "编码" ,
'name' = "field0" ,
'maxlength' = 3,
'required' = "true" ,
'width' = 100,
'tip' = "提示:编号为必填项,只能填写3位" ,
)
);
|
登录后复制
经过前后PHP函数参数传递方法的对比可以发现:
传统的函数在需要扩展的时候改动量大,使用的时候必须按参数的顺序写,很容易出错.
改进后的函数扩展的时候可以随时增加新参数,只需要在调用时增加对应的数组键值,每个参数都一目了然,无需考虑顺序,代码可读性增强.
不过PHP函数参数传递方法的改进还是有缺点的,代码量增大了,需要程序员多写很多键值,还有就是函数中判断语句和三元运算语句可能会影响效率。
相关文章推荐:
php函数与传递参数实例分析
PHP在函数体中传递与接收参数
以上就是php中使用数组作为参数让性能得到优化的方法介绍(附代码)的详细内容,更多请关注php中文网其它相关文章!