好吧,假设我有 100 次调用 "form_input" 函数。这些调用包括文本 (70) 和上传 (30)。
我以前的上传很简单。现在我做了一点更改并添加:图像预览和文件名预览。但我不想改变所有地方(30),我可以而且很容易,但我现在不想。
我不想更改"核心"文件,如果是这样的话,我更喜欢使用其他名称的函数。
form_input($p1, $p2, $p3){
if($p1['type']=='file'){
//do my lovely upload
}else{
//call built-in form_input (this is not a recursive call)
form_input($p1, $p2, $p3);
}
}
有多种方法可以做到这一点。
-
让它成为一个类。 使用自定义窗体函数创建一个新类,并在需要时对其进行实例化。虽然 CodeIgniter 中的帮助程序应该是无类的,但这将很好地工作并更好地组织您的代码。例如
class CustomFormHelper { function form_input() { // your code } } $form_helper = new CustomFormHelper(); $form_helper->form_input();
-
更改函数名称。正如评论者所说,只需更改函数名称,它应该是一个快速修复。
-
制作多功能。这不是最干净的解决方案,但如果您想统一两者,这应该可以解决问题。
function form_input_unified($fn, $args) { if ($fn == 1) { // execute original... } elseif ($fn == 2) { // do it new way. } }