PHP函数参数传递方法的具体改进技巧
时间:2022-07-23
本文章向大家介绍PHP函数参数传递方法的具体改进技巧,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
本人在经历了多次重复操作之后决定改进一下传统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,
PHP函数参数传递方法的调用方法变成
- $form->addInput("编码","field0","","text",3,"","true","","",100,"提示:编号为必填项,只能填写3位");
如果使用这个函数的地方很多的话一个一个改确实需要很长时间.
下面是我改进之后的函数
<?php
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字符串 string
- PHP整型 integer
- PHP浮点型 float
- php布尔型
- php数据类型之数组
- php数据类型之对象
- php数据类型之null
- php数据类型之间的转换
- php运算符
- php表达式
- PHP循环控制
- PHP流程控制
- php函数
- php全局变量
- PHP魔术变量
- php命名空间
- php 日期
- PHP包含文件
- php文件
- PHP 文件上传
- php Cookies
- php Sessions
- php email
- php安全email
- php错误处理
- PHP异常处理
- php过滤器
- PHP 高级过滤器
- php json
- php 表单
- PHP MySQL 简介
- PHP 连接 MySQL
- php创建数据库
- php 创建表
- php mysq 插入数据
- PHP MySQL 插入多条数据
- PHP MySQL 预处理语句
- php mysql 读取数据
- php mysql where
- PHP MySQL Order By
- PHP MySQL Update
- PHP MySQL Delete
- php ODBC
- WebView三问—B站真题
- C++核心准则T.140:为所有可能重用的操作命名
- Service三问
- 事件分发机制三问
- C++核心准则T.141:如果你需要只在一个地方使用的简单的函数对象,使用无名的lambda表达式
- 基于DOM的XML文件解析类
- C++核心准则T.143:避免无意中编写非通用代码
- XML文件解析实践(DOM解析)
- golang 多协程的同步方法总结
- C++核心准则T.144:不要特化函数模板
- 三千字带你搞懂XXL-JOB任务调度平台
- Python-科学计算-pandas-14-df按行按列进行转换
- Python实现扫码工具
- C++核心准则T.150:用static_assert检查类和概念的匹配性
- 初学者也能快速写Python脚本啦——通用功能代码分享