2016-05-03 3 views
0

У меня есть файл PHP ajax.php, где я всегда отправляю свой ajax. В коде есть еще 50 слов if. Я всегда передаю параметр POST cmd в файл ajax.php и проверяю, установлена ​​ли переменная и выполняется другой код в зависимости от содержимого переменной.Сколько еще утверждений следует использовать?

Мне было интересно, следует ли мне разделить мой ajax.php на несколько файлов, чтобы уменьшить количество операторов else if и повысить производительность. Но сколько else if мы рекомендуем использовать и оказывает ли это большое влияние на производительность, если мы используем, например, 10000?

+4

Наибольшее влияние будет на _maintaining_, что код –

+0

^определенно согласен .. другое дело, что переключатель будет лучше, чем иметь много другого, если ... –

+1

дать 'switch' a попытка –

ответ

0

Я думаю, что я едва сумасшедший, чтобы написать 10k elseif самостоятельно, я бы предпочел взломать голову и найти правильный алгоритм или вместо этого использовать инструкцию switch.

Btw, всегда стараюсь, чтобы избежать такого рода ситуации, на самом деле не имеет значения, если это один файл или 1000 файлов, время обработки будет всегда один и тем же

0

, разделяющий файл не может принести пользу производительности, но для чтения человека и поддерживаемый.

Если ваш код что-то вроде:

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

Для производительности, вы можете изменить его, чтобы переключить случай. Но если оптимизация оператора всегда не критична по производительности.

1

Я не думаю, что производительность была бы проблемой с 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 
} 

Было бы легче читать и более управляемым в случае, если вы решили разбить его на файлы,

+0

Теперь у вас есть 10000 'case's и 10000 функций –

+0

Неужели так много функций? Или мы должны писать код непосредственно в инструкции switch? – Black

+0

Лучше иметь функции вместо того, чтобы записывать все в случаях коммутатора, это просто проще для программистов, для PHP это почти не имеет значения, оно просто более организованное, у вас есть 1 переключатель, 1 «маленький» блок кода, обрабатывающего $ cmd, вызывая функции (ы), которые вам нужны в каждом случае. и тогда у вас будет столько функций, сколько вам нужно. вы можете даже переключиться в 1 файл PHP, а затем сгруппировать функции в разные файлы по категориям и «включить» эти файлы в файл коммутатора и всегда POST в файл коммутатора. Кроме того, вам действительно нужны 10000 функций? оптимизировать функции! – aampudia

1

Вы можете использовать ключевое значение шаблон в php. Создайте массив с вашими постфакторами как ключ, а другой - как значения s. Всякий раз, когда придет В параметре для ajax.php проверки для ключа с помощью array_key_exist() Array key value и Array

0

PHP оленья кожа имеет проблемы с производительностью некоторых многих линий, но люди делают. Возможно, вы можете прочитать код, потому что вы его сейчас помните. Но если ваш кто-то присоединится к вашей команде, он будет потерян и, вероятно, не захочет присоединиться к этому. Или, если вы вернетесь к этому скрипту через год, сможете ли вы его прочитать, добавить или удалить что-нибудь?

Каждый сценарий или класс должен делать одно дело или работать с одним объектом. Существует много подходов к написанию лучшего кода.

single responsibilty principle

Object oriented Programming

и многое другое