2015-12-26 19 views
1

我有一些URL是這樣的:如何創建一個多名字方法?

www.example.com/classname/method1/arg 
www.example.com/classname/method2/arg 
www.example.com/classname/method3/arg 

另外我有一個class這樣的:

class classname{ 

    public function method1($arg){ 
     return $this->main_method(__FUNCTION__, $arg); 
    } 

    public function method2($arg){ 
     return $this->main_method(__FUNCTION__, $arg); 
    } 

    public function method3($arg){ 
     return $this->main_method(__FUNCTION__, $arg); 
    } 

    public main_method($TableName, $arg){ 
     // connect to database 
     $stm = $db->prepare("SELECT id, word, mean FROM $TableName where word = ':word'"); 
     $stm->bindValue(":word", $arg, PDO::PARAM_STR); 
     $stm->execute(); 
     $result = $stm->fetch(); 

     return = $result; 
    } 
} 

正如從上面的代碼清楚,有三個表:

// method1     // method2     // method3 
+----+------+-----------+  +----+------+-----------+  +----+------+-----------+ 
| id | word | mean |  | id | word | mean |  | id | word | mean | 
+----+------+-----------+  +----+------+-----------+  +----+------+-----------+ 

現在我想知道,是否可以使用m創建一個函數多重名字?因爲這三種方法有一個(差不多)相同的操作... (我可以傳遞方法的名稱作爲多名稱方法的另一個參數)或者我怎樣才能優化上面的代碼?

+2

要麼我錯過了這個觀點,要麼你只是想做一些毫無意義的事情。你所有的參數都是一樣的。該功能最終只做一項任務。爲什麼你不能只使用一個函數/方法? – itsols

+0

每種方法的操作有何不同? – itsols

+0

@itsols'__FUNCTION__'在每種方法中都不相同。 – Shafizadeh

回答

1

所以你有三個表中的DB完全相同的列? 您應該使用一種API方法和一種執行方法將所有內容保存在一張表中。

+0

好點..!我已經想過了。是的同意..!但我認爲在一張小桌子上搜索會比一張大桌子快! – Shafizadeh

+0

管理一張桌子更容易,特別是如果您使用關係。如果您正確設置索引您將不必擔心性能。 – pawel

+0

好的........! +1 – Shafizadeh

相關問題