Loading...
PHP/MySQL | Сильно ли нагружают условия в PHP?
Короче, есть чат-бот, хотелось бы не делать лишнего в коде, и решил добавить в код там где подключение к базе условие на вызываемую команду, так вот, если в условии будет около 35 команд, то есть if($command[0] == 'помощь' OR $command[0] == 'профиль' и т.д.) это всё будет нагружать и замедлять выполнение?
________
посл. ред. 09.01.2020 в 13:13; всего 2 раз(а); by ExcLuSiVe
Или получается, что сами условия и будут в коде лишним?
Много if это и есть не порядок.
Попробуй с массивом использовать if
$jil = ('Профиль','Помощь'..);
Далее сделать поиск по массиву и выдать
if($command[0]==$search[$jil]
Примерно так либо через switch использовать
Вообще как таково за нагрузку в данном случае можешь не париться Гг
Запускай на 7+ версии с обкешем и все Гг
Но насчет ифов согласен, что их слишком много, тогда лучше использовать массив с перечнем и брать результат in_array для сверки Гг
А для лучшего роутинга вообще можно обойтись одним ифом, а в массиве назначить нужные экшены для выполнение действия
$a=[
"command"=>"action"
];

if(in_array($command,$a)){
$obj->$a[$command]();
}
________
посл. ред. 09.01.2020 в 13:30; всего 2 раз(а); by System
А switch чем не вариант?
Зачем? У тебя есть key-value коллекция, в ключ заноси имя команды, в значение - её обработчик.

php
$a = array("профиль" => function() { return 0; });

...

if(isset($a[$b]))
$a[$b]();
else
echo "Команда не найдена";

________
посл. ред. 09.01.2020 в 13:39; всего 1 раз(а); by monobogdan
ExcLuSiVe, Если сомниваешь будет ли грузить тот или иной кусок кода, то просто проверь

$start_time = microtime(true);

for($i = 1; $i <= 1000; $i++){

//тут твой код

}

round(microtime(true) - $start_time,4)
TuT (09.01.2020 в 13:39)
ExcLuSiVe, Если сомниваешь будет ли грузить тот или иной кусок кода, то просто проверь

$start_time = microtime(true);

for($i = 1; $i <= 1000; $i++){

//тут твой код

}

round(microtime(true) - $start_time,4)

Ну да, нафига дебаггеры нужны.
monobogdan (09.01.2020 в 13:41)
Ну да, нафига дебаггеры нужны.

Конечно нафиг :-D
Онлайн: 0
Время:
Gen. 0.1002
(c) Bym.Guru 2010-2025