如何优化php函数参数传递的实用技巧

伊谢尔伦
发布: 2017-06-26 14:13:35
原创
1575人浏览过

当我们在写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免费学习笔记(深入)”;

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

以上就是如何优化php函数参数传递的实用技巧的详细内容,更多请关注php中文网其它相关文章!

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号