簡體   English   中英

如果還要使用其他語句?

[英]How many else if statements should we use?

我有一個PHP文件ajax.php ,我總是將我的ajax發送到該文件。 代碼中大約有50個if語句。 我總是將POST參數cmd傳遞給我的ajax.php文件,並檢查變量是否已設置,並根據變量內容執行不同的代碼。

我想知道我是否應該將ajax.php拆分為多個文件,以減少else if語句的數量並提高性能。 但是, else if我們建議使用10000個,那么我們建議使用多少個?它對性能有很大影響嗎?

我不認為使用50或100個不同的命令會帶來性能問題。 但是我建議的是使用開關盒和功能,像這樣

$cmd = $_POST['cmd'];

switch ($cmd){
    case "command1":
        fnCommand1();
        break;
    case "command2":
        fnCommand2();
        break;
}

function fnCommand1(){
    //do command 1
}

function fnCommand2(){
    //do command 2
}

如果您決定將其拆分為文件,將更易於閱讀和管理。

您可以在php中使用鍵值模式。 用您的post參數作為鍵,其他作為s值創建一個數組。 每當參數進入ajax.php ,使用array_key_exist() 數組鍵值數組檢查鍵

我認為自己寫10k elseif幾乎是瘋狂的,我寧願crack之以鼻,找到一個有效的算法,或者改用switch語句。

順便說一句,請始終避免這種情況,是單個文件還是1000個文件都沒有關系,處理時間將始終相同

分隔文件不能提高性能,但易於閱讀和維護。

如果您的代碼是這樣的:

if($_POST["cmd"]=="a"){
//case a
}else if($_POST["cmd"]=="a"){
//case b

為了提高性能,您可以將其更改為開關盒。 但是,如果語句優化始終不是性能至關重要的。

PHP在很多方面都沒有性能問題,但是人們確實有。 也許您可以閱讀代碼,因為您現在可以記住它。 但是,如果您的某人加入您的團隊,他將會迷失並且可能不會因此而加入。 或者,如果您在一年后返回此腳本,是否可以閱讀,添加或刪除某些內容?

每個腳本或類都應該做一件事情或與一個實體一起工作。 有許多方法可以編寫更好的代碼。

單一責任原則

面向對象編程

還有很多

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM