【问题标题】:PHP Function with parameters to return different strings带参数的PHP函数返回不同的字符串
【发布时间】:2014-09-10 11:06:42
【问题描述】:

** 在第一个答案之后:需要更新 5 年的项目

我的问题是,目前一个产品下载页面至少有 14 个功能和超过 1200 行代码。我基本上只是想让更改和减小文件大小和代码变得更简单,例如在页面顶部添加所有变量,而不必搜索整个代码以找到必须添加的位置并尽可能多地删除重复函数...... **

同一个对象的一些变量(都带有额外的函数):

 $p1_files = "'p-1.zip', 'p-2.zip', 'p-3.zip', 'p-4.zip', 'p-5.zip'";
 $p2_files = "'p2-1.zip', 'p2-2.zip', 'p2-3.zip', 'p2-4.zip', 'p2-5.zip'";
 $p3_files = "'p3-1.zip', 'p3-download-2.zip', 'p3-download-3.zip', 'p3-4.zip', 'p3-5.zip'";

“非常缩短”的功能:

 function p_files_function(){
    $p1_files = "'p-1.zip', 'p-2.zip', 'p-3.zip', 'p-4.zip', 'p-5.zip'";
    return $p1_files; 
 }

“p_files_function()”返回

 'p-1.zip', 'p-2.zip', 'p-3.zip', 'p-4.zip', 'p-5.zip'

这是完美的,我可以用来创建列表,但它只适用于 1 个变量。

现在,我想做的是将所有变量添加到一个函数中,并且只返回需要的一个 类似的东西

// List all vars at top of page
    $p1_files = "'p-1.zip', 'p-2.zip', 'p-3.zip', 'p-4.zip', 'p-5.zip'";
    $p2_files = "'p2-1.zip', 'p2-2.zip', 'p2-3.zip', 'p2-4.zip', 'p2-5.zip'";
    $p3_files = "'p3-1.zip', 'p3-download-2.zip', 'p3-download-3.zip', 'p3-4.zip', 'p3-5.zip'";
// one function to get the needed vars 
 function p_files_function($args){
 if Value1 {
    $needed_files = $p1_files
        }
 if Value2 {
    $needed_files = $p2_files
        }
 if Value3 {
    $needed_files = $p3_files
        }
    return $needed_files; 
    }

// easy way to get the needed vars 
 p_files_function(Value2) //should retuns $p2_files

有什么想法吗?

  • 这是非常简短的,还有图像、文档等,我设法将其他所有内容减少到最低限度,但我迷失了,我需要的只是一个起点。

谢谢

【问题讨论】:

    标签: php function variables parameters


    【解决方案1】:

    我个人认为在函数名称中添加后缀 _function 有点多余。也就是说:

    function p_files($type) {
    
       switch ($type) {
          case 'p1': 
              return "'p-1.zip', 'p-2.zip', 'p-3.zip', 'p-4.zip', 'p-5.zip'";
          case 'p2': 
              return "'p2-1.zip', 'p2-2.zip', 'p2-3.zip', 'p2-4.zip', 'p2-5.zip'";
          case 'p3': 
              return "'p3-1.zip', 'p3-download-2.zip', 'p3-download-3.zip', 'p3-4.zip', 'p3-5.zip'";
          default: 
              return ''; // or trigger error or whatever
       }
    
    }
    
    $needed_files = p_files('p1'); // etc
    

    【讨论】:

    • 好的,那你会怎么做呢?我的问题是,目前一个产品下载页面至少有 14 个功能和超过 1200 行代码。我基本上只是想让更改变得更简单,并可能减少文件大小和代码,例如在页面顶部添加新的文件名,而不是搜索整个代码以找到必须添加的位置并尽可能多地删除重复函数...
    • 我会尝试识别文件名中的模式并将逻辑抽象到一个名为 FileFinder 左右的类。此外,如果可以选择,请考虑将数据存储在数据库中。看起来您的代码中有很多数据。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-03
    • 1970-01-01
    • 1970-01-01
    • 2018-03-14
    • 1970-01-01
    • 2011-09-08
    相关资源
    最近更新 更多