2014-09-10 46 views
-1

** 第一個答案後:5歲的項目,需要更新與參數PHP函數返回不同的字符串

我的問題是,在目前的單品之一,下載頁面有至少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'"; 

的 「非常shortend」 功能:

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 var。

現在,我想這樣做是把所有增值經銷商增加一個功能,只返回所需的一個 喜歡的東西

// 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 

什麼想法?

  • 這是非常shortend也有圖片,文檔等,我設法削減一切降到最低,但與此,我輸了,我需要的是一個起點。

感謝

回答

0

我個人認爲,加後綴_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 
+0

好的,那麼你會怎麼做呢?我的問題是,目前單個產品下載頁面至少有14個功能和1200多行代碼。我基本上只是想讓它變得更簡單,並且可能會減小文件大小和代碼,例如在頁面頂部添加新的文件名,而不是搜索整個代碼,以找到他們必須添加和刪除儘可能多的dupicatefunctions ... – EdHanson 2014-09-10 12:26:12

+0

我會嘗試識別文件名和模式中的模式一個名爲FileFinder的類的邏輯等等。另外,如果這是一個選項,考慮將數據存儲在數據庫中。看起來你的代碼中有很多數據。 – ODaniel 2014-09-15 09:30:57