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

php中文网
发布: 2016-07-15 13:29:46
原创
1081人浏览过

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

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

立即学习PHP免费学习笔记(深入)”;

立即学习PHP免费学习笔记(深入)”;

立即学习PHP免费学习笔记(深入)”;

<OL class=dp-xml><LI class=alt><SPAN><SPAN>/**  </SPAN></SPAN><LI class=""><SPAN>* @Purpose:     插入文本域  </SPAN><LI class=alt><SPAN>* @Method Name: addInput()  </SPAN><LI class=""><SPAN>* @Parameter:    str $title        表单项标题  </SPAN><LI class=alt><SPAN>* @Parameter:    str $name        元素名称  </SPAN><LI class=""><SPAN>* @Parameter:    str $value        默认值  </SPAN><LI class=alt><SPAN>* @Parameter:    str $type        类型,默认为text,可选password  </SPAN><LI class=""><SPAN>* @Parameter:    str $maxlength        最长输入  </SPAN><LI class=alt><SPAN>* @Parameter:    str $readonly        只读  </SPAN><LI class=""><SPAN>* @Parameter:    str $required        是否必填,默认为false,true为必填  </SPAN><LI class=alt><SPAN>* @Parameter:    str $check        表单验证function(js)名称  </SPAN><LI class=""><SPAN>* @Parameter:    str $id            元素id,无特殊需要时省略  </SPAN><LI class=alt><SPAN>* @Parameter:    int $width        元素宽度,单位:象素  </SPAN><LI class=""><SPAN>* @Parameter:    str $tip        元素提示信息  </SPAN><LI class=alt><SPAN>* @Return:        </SPAN><LI class=""><SPAN>*/  </SPAN><LI class=alt><SPAN>function addInput($title,$name,$</SPAN><SPAN class=attribute><FONT color=#ff0000>value</FONT></SPAN><SPAN>=</SPAN><SPAN class=attribute-value><FONT color=#0000ff>""</FONT></SPAN><SPAN>,$</SPAN><SPAN class=attribute><FONT color=#ff0000>type</FONT></SPAN><SPAN>=</SPAN><SPAN class=attribute-value><FONT color=#0000ff>"text"</FONT></SPAN><SPAN>,$</SPAN><SPAN class=attribute><FONT color=#ff0000>maxlength</FONT></SPAN><SPAN>=</SPAN><SPAN class=attribute-value><FONT color=#0000ff>"255"</FONT></SPAN><SPAN>,<br>$readonly,$</SPAN><SPAN class=attribute><FONT color=#ff0000>required</FONT></SPAN><SPAN>=</SPAN><SPAN class=attribute-value><FONT color=#0000ff>"false"</FONT></SPAN><SPAN>,$check,$id,$width,$tip)  </SPAN></SPAN><LI class=""><SPAN>{  </SPAN><LI class=alt><SPAN>    $this-</SPAN><SPAN class=tag><STRONG><FONT color=#006699>></FONT></STRONG></SPAN><SPAN>form </SPAN><SPAN class=attribute><FONT color=#ff0000>.</FONT></SPAN><SPAN>= </SPAN><SPAN class=attribute-value><FONT color=#0000ff>"<li>n"</FONT></SPAN><SPAN>;  </SPAN></SPAN><LI class=""><SPAN>    $this-</SPAN><SPAN class=tag><STRONG><FONT color=#006699>></FONT></STRONG></SPAN><SPAN>form </SPAN><SPAN class=attribute><FONT color=#ff0000>.</FONT></SPAN><SPAN>= </SPAN><SPAN class=attribute-value><FONT color=#0000ff>"<label>"</FONT></SPAN><SPAN>.$title.":</SPAN><STRONG><FONT color=#006699><SPAN class=tag></</SPAN><SPAN class=tag-name>label</SPAN><SPAN class=tag>></SPAN></FONT></STRONG><SPAN>n";  </SPAN></SPAN><LI class=alt><SPAN>    $this-</SPAN><SPAN class=tag><STRONG><FONT color=#006699>></FONT></STRONG></SPAN><SPAN>form </SPAN><SPAN class=attribute><FONT color=#ff0000>.</FONT></SPAN><SPAN>= "</SPAN><STRONG><FONT color=#006699><SPAN class=tag><</SPAN><SPAN class=tag-name>input</SPAN></FONT></STRONG><SPAN> name="</SPAN><SPAN class=attribute-value><FONT color=#0000ff>".$name."</FONT></SPAN><SPAN>" </SPAN><SPAN class=attribute><FONT color=#ff0000>value</FONT></SPAN><SPAN>="".$value."" </SPAN><SPAN class=attribute><FONT color=#ff0000>type</FONT></SPAN><SPAN>=""<br>.$type."" </SPAN><SPAN class=attribute><FONT color=#ff0000>maxlength</FONT></SPAN><SPAN>="".$maxlength."" </SPAN><SPAN class=attribute><FONT color=#ff0000>required</FONT></SPAN><SPAN>="".$required."" </SPAN><SPAN class=attribute><FONT color=#ff0000>check</FONT></SPAN><SPAN>=""<br>.$check."" </SPAN><SPAN class=attribute><FONT color=#ff0000>id</FONT></SPAN><SPAN>="".$id."" </SPAN><SPAN class=attribute><FONT color=#ff0000>class</FONT></SPAN><SPAN>="input" ".$readonly." </SPAN><SPAN class=attribute><FONT color=#ff0000>style</FONT></SPAN><SPAN>="width:".$width.<br>"px;" </SPAN><SPAN class=attribute><FONT color=#ff0000>showName</FONT></SPAN><SPAN>="".$title."" </SPAN><SPAN class=tag><STRONG><FONT color=#006699>/></FONT></STRONG></SPAN><SPAN> ";  </SPAN></SPAN><LI class=""><SPAN>    $this-</SPAN><SPAN class=tag><STRONG><FONT color=#006699>></FONT></STRONG></SPAN><SPAN>form </SPAN><SPAN class=attribute><FONT color=#ff0000>.</FONT></SPAN><SPAN>= "</SPAN><STRONG><FONT color=#006699><SPAN class=tag><</SPAN><SPAN class=tag-name>span</SPAN></FONT></STRONG><SPAN> class="</SPAN><SPAN class=attribute-value><FONT color=#0000ff>tip</FONT></SPAN><SPAN>"</SPAN><SPAN class=tag><STRONG><FONT color=#006699>></FONT></STRONG></SPAN><SPAN>".$tip."</SPAN><STRONG><FONT color=#006699><SPAN class=tag></</SPAN><SPAN class=tag-name>span</SPAN><SPAN class=tag>></SPAN></FONT></STRONG><SPAN>n";  </SPAN></SPAN><LI class=alt><SPAN>    $this-</SPAN><SPAN class=tag><STRONG><FONT color=#006699>></FONT></STRONG></SPAN><SPAN>form </SPAN><SPAN class=attribute><FONT color=#ff0000>.</FONT></SPAN><SPAN>= </SPAN><SPAN class=attribute-value><FONT color=#0000ff>"</li>n"</FONT></SPAN><SPAN>;  </SPAN></SPAN><LI class=""><SPAN>} </SPAN></LI></OL>
登录后复制

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

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

立即学习PHP免费学习笔记(深入)”;

立即学习PHP免费学习笔记(深入)”;

立即学习PHP免费学习笔记(深入)”;

立即学习PHP免费学习笔记(深入)”;

<OL class=dp-xml><LI class=alt><SPAN><SPAN>$form-</SPAN><SPAN class=tag><STRONG><FONT color=#006699>></FONT></STRONG></SPAN><SPAN>addInput("编码","field0","","text",3,""); </SPAN></SPAN></LI></OL>
登录后复制

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

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

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

立即学习PHP免费学习笔记(深入)”;

立即学习PHP免费学习笔记(深入)”;

立即学习PHP免费学习笔记(深入)”;

立即学习PHP免费学习笔记(深入)”;

立即学习PHP免费学习笔记(深入)”;

<OL class=dp-xml><LI class=alt><SPAN><SPAN>$form-</SPAN><SPAN class=tag><STRONG><FONT color=#006699>></FONT></STRONG></SPAN><SPAN>addInput("编码","field0","","text",3,"","true",""<br>,"",100,"提示:编号为必填项,只能填写3位");  </SPAN></SPAN></LI></OL>
登录后复制

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

下面是我改进之后的函数

即构数智人
即构数智人

即构数智人是由即构科技推出的AI虚拟数字人视频创作平台,支持数字人形象定制、短视频创作、数字人直播等。

即构数智人 36
查看详情 即构数智人

立即学习PHP免费学习笔记(深入)”;

立即学习PHP免费学习笔记(深入)”;

立即学习PHP免费学习笔记(深入)”;

立即学习PHP免费学习笔记(深入)”;

立即学习PHP免费学习笔记(深入)”;

立即学习PHP免费学习笔记(深入)”;

<OL class=dp-xml><LI class=alt><SPAN><SPAN>function addInput($a)  </SPAN></SPAN><LI class=""><SPAN>{  </SPAN><LI class=alt><SPAN>    if(is_array($a))  </SPAN><LI class=""><SPAN>    {  </SPAN><LI class=alt><SPAN>        $</SPAN><SPAN class=attribute><FONT color=#ff0000>title</FONT></SPAN><SPAN>        = $a['title'];  </SPAN></SPAN><LI class=""><SPAN>        $</SPAN><SPAN class=attribute><FONT color=#ff0000>name</FONT></SPAN><SPAN>        = $a['name'];  </SPAN></SPAN><LI class=alt><SPAN>        $</SPAN><SPAN class=attribute><FONT color=#ff0000>value</FONT></SPAN><SPAN>        = $a['value'] ? $a['value'] : "";  </SPAN></SPAN><LI class=""><SPAN>        $</SPAN><SPAN class=attribute><FONT color=#ff0000>type</FONT></SPAN><SPAN>        = $a['type'] ? $a['type'] : "text";  </SPAN></SPAN><LI class=alt><SPAN>        $</SPAN><SPAN class=attribute><FONT color=#ff0000>maxlength</FONT></SPAN><SPAN>    = $a['maxlength'] ? $a['maxlength'] : "255";  </SPAN></SPAN><LI class=""><SPAN>        $</SPAN><SPAN class=attribute><FONT color=#ff0000>readonly</FONT></SPAN><SPAN>    = $a['readonly'] ? $a['readonly'] : "";  </SPAN></SPAN><LI class=alt><SPAN>        $</SPAN><SPAN class=attribute><FONT color=#ff0000>required</FONT></SPAN><SPAN>    = $a['required'] ? $a['required'] : "false";  </SPAN></SPAN><LI class=""><SPAN>        $</SPAN><SPAN class=attribute><FONT color=#ff0000>check</FONT></SPAN><SPAN>        = $a['check'];  </SPAN></SPAN><LI class=alt><SPAN>        $</SPAN><SPAN class=attribute><FONT color=#ff0000>id</FONT></SPAN><SPAN>        = $a['id'];  </SPAN></SPAN><LI class=""><SPAN>        $</SPAN><SPAN class=attribute><FONT color=#ff0000>width</FONT></SPAN><SPAN>        = $a['width'];  </SPAN></SPAN><LI class=alt><SPAN>        $</SPAN><SPAN class=attribute><FONT color=#ff0000>tip</FONT></SPAN><SPAN>        = $a['tip'];  </SPAN></SPAN><LI class=""><SPAN>    }  </SPAN><LI class=alt><SPAN>    $title,$name,$</SPAN><SPAN class=attribute><FONT color=#ff0000>value</FONT></SPAN><SPAN>=</SPAN><SPAN class=attribute-value><FONT color=#0000ff>""</FONT></SPAN><SPAN>,$</SPAN><SPAN class=attribute><FONT color=#ff0000>type</FONT></SPAN><SPAN>=</SPAN><SPAN class=attribute-value><FONT color=#0000ff>"text"</FONT></SPAN><SPAN>,$</SPAN><SPAN class=attribute><FONT color=#ff0000>maxlength</FONT></SPAN><SPAN>=</SPAN><SPAN class=attribute-value><FONT color=#0000ff>"255"</FONT></SPAN><SPAN>,$readonly,$</SPAN><SPAN class=attribute><FONT color=#ff0000>required</FONT></SPAN><SPAN>=</SPAN><SPAN class=attribute-value><FONT color=#0000ff>"false"</FONT></SPAN><SPAN>,$check,$id,$width,$tip  </SPAN></SPAN><LI class=""><SPAN>    $this-</SPAN><SPAN class=tag><STRONG><FONT color=#006699>></FONT></STRONG></SPAN><SPAN>form </SPAN><SPAN class=attribute><FONT color=#ff0000>.</FONT></SPAN><SPAN>= </SPAN><SPAN class=attribute-value><FONT color=#0000ff>"<li>n"</FONT></SPAN><SPAN>;  </SPAN></SPAN><LI class=alt><SPAN>    $this-</SPAN><SPAN class=tag><STRONG><FONT color=#006699>></FONT></STRONG></SPAN><SPAN>form </SPAN><SPAN class=attribute><FONT color=#ff0000>.</FONT></SPAN><SPAN>= </SPAN><SPAN class=attribute-value><FONT color=#0000ff>"<label>"</FONT></SPAN><SPAN>.$title.":</SPAN><STRONG><FONT color=#006699><SPAN class=tag></</SPAN><SPAN class=tag-name>label</SPAN><SPAN class=tag>></SPAN></FONT></STRONG><SPAN>n";  </SPAN></SPAN><LI class=""><SPAN>    $this-</SPAN><SPAN class=tag><STRONG><FONT color=#006699>></FONT></STRONG></SPAN><SPAN>form </SPAN><SPAN class=attribute><FONT color=#ff0000>.</FONT></SPAN><SPAN>= "</SPAN><STRONG><FONT color=#006699><SPAN class=tag><</SPAN><SPAN class=tag-name>input</SPAN></FONT></STRONG><SPAN> name="</SPAN><SPAN class=attribute-value><FONT color=#0000ff>".$name."</FONT></SPAN><SPAN>" </SPAN><SPAN class=attribute><FONT color=#ff0000>value</FONT></SPAN><SPAN>="".$value."" </SPAN><SPAN class=attribute><FONT color=#ff0000>type</FONT></SPAN><SPAN>="".$type."" </SPAN><SPAN class=attribute><FONT color=#ff0000>maxlength</FONT></SPAN><SPAN>="".$maxlength."" </SPAN><SPAN class=attribute><FONT color=#ff0000>required</FONT></SPAN><SPAN>="".$required."" </SPAN><SPAN class=attribute><FONT color=#ff0000>check</FONT></SPAN><SPAN>="".$check."" </SPAN><SPAN class=attribute><FONT color=#ff0000>id</FONT></SPAN><SPAN>="".$id."" </SPAN><SPAN class=attribute><FONT color=#ff0000>class</FONT></SPAN><SPAN>="input" ".$readonly." </SPAN><SPAN class=attribute><FONT color=#ff0000>style</FONT></SPAN><SPAN>="width:".$width."px;" </SPAN><SPAN class=attribute><FONT color=#ff0000>showName</FONT></SPAN><SPAN>="".$title."" </SPAN><SPAN class=tag><STRONG><FONT color=#006699>/></FONT></STRONG></SPAN><SPAN> ";  </SPAN></SPAN><LI class=alt><SPAN>    $this-</SPAN><SPAN class=tag><STRONG><FONT color=#006699>></FONT></STRONG></SPAN><SPAN>form </SPAN><SPAN class=attribute><FONT color=#ff0000>.</FONT></SPAN><SPAN>= "</SPAN><STRONG><FONT color=#006699><SPAN class=tag><</SPAN><SPAN class=tag-name>span</SPAN></FONT></STRONG><SPAN> class="</SPAN><SPAN class=attribute-value><FONT color=#0000ff>tip</FONT></SPAN><SPAN>"</SPAN><SPAN class=tag><STRONG><FONT color=#006699>></FONT></STRONG></SPAN><SPAN>".$tip."</SPAN><STRONG><FONT color=#006699><SPAN class=tag></</SPAN><SPAN class=tag-name>span</SPAN><SPAN class=tag>></SPAN></FONT></STRONG><SPAN>n";  </SPAN></SPAN><LI class=""><SPAN>    $this-</SPAN><SPAN class=tag><STRONG><FONT color=#006699>></FONT></STRONG></SPAN><SPAN>form </SPAN><SPAN class=attribute><FONT color=#ff0000>.</FONT></SPAN><SPAN>= </SPAN><SPAN class=attribute-value><FONT color=#0000ff>"</li>n"</FONT></SPAN><SPAN>;  </SPAN></SPAN><LI class=alt><SPAN>} </SPAN></LI></OL>
登录后复制

调用方法变为

立即学习PHP免费学习笔记(深入)”;

立即学习PHP免费学习笔记(深入)”;

立即学习PHP免费学习笔记(深入)”;

立即学习PHP免费学习笔记(深入)”;

立即学习PHP免费学习笔记(深入)”;

立即学习PHP免费学习笔记(深入)”;

立即学习PHP免费学习笔记(深入)”;

<OL class=dp-xml><LI class=alt><SPAN><SPAN>$form-</SPAN><SPAN class=tag><STRONG><FONT color=#006699>></FONT></STRONG></SPAN><SPAN>addInput(  </SPAN></SPAN><LI class=""><SPAN>    array(  </SPAN><LI class=alt><SPAN>        'title' = "编码",  </SPAN><LI class=""><SPAN>        'name' = "field0",  </SPAN><LI class=alt><SPAN>        'maxlength' = 3,  </SPAN><LI class=""><SPAN>        'required' = "true",  </SPAN><LI class=alt><SPAN>        'width' = 100,  </SPAN><LI class=""><SPAN>        'tip' = "提示:编号为必填项,只能填写3位",  </SPAN><LI class=alt><SPAN>    )  </SPAN><LI class=""><SPAN>);  </SPAN></LI></OL>
登录后复制

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

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

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

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


www.bkjia.comtruehttp://www.bkjia.com/PHPjc/446329.htmlTechArticle当我们在写 本人在经历了多次重复操作之后决定改进一下传统PHP函数参数传递方法,使用数组作为参数,请看下面的例子. 先看一个传统的自...
相关标签:
php
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

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

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

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