Если еще с тем же кодом, но с другим условием - PullRequest
0 голосов
/ 23 мая 2019

У меня есть оператор if / elseif с одинаковым кодом, но я хочу вызвать их в зависимости от условия. Я получил точно такой же код, дублированный в операторе if, как и оператор elseif.

$x = 10;
$y = 20;

if($x <= $y){
    // some code
}
elseif($x >= $y){
    $oldX = $x;
    $x = $y;
    $y = $oldX;
    // same code as if
}

I am curious if there is a way that I do not have to duplicate my code in both the if statement aswell as the elseif statement.

1 Ответ

4 голосов
/ 23 мая 2019

Как я понимаю, у вас есть два способа сделать это.

Альтернативный вариант: создать функцию

$x = 10;
$y = 20;

function myCodeBlock($x, $y) {
    // some code
}

if ($x <= $y) {
    myCodeBlock($x, $y);
} else {
    myCodeBlock($y, $x);
}

Второй вариант (возможно, наиболее предпочтительный): поставить кодовый блок после проверки, где вы перепутали значения переменных.

$x = 10;
$y = 20;

if($x >= $y){
    $oldX = $x;
    $x = $y;
    $y = $oldX;
}
// some code

Имейте в виду, что, делая

elseif($x >= $y){
    $x = $y;
    $y = $x;

... затем $y и $x становятся равными - когда вы устанавливаете $x в значение $y, но затем устанавливаете $y обратно в $x, который был $y.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...