Привет. Как сократить этот код, чтобы не дублировать вывод <div> с одинаковым содержимым? То, что внутри <div> нужно выводить только в случае, если id является 0 или 1. Дело в том, что id также может принимать и другие значения. Выводить <div> при других значениях не нужно. http://sandbox.onlinephpfunctions.com/code/5e8974a3896aee770df173e122bac5d19aa1bd1f Код (Text): <?php $id = 1; switch($id) { case 0: echo "<span>Lorem</span>"; echo "<div>Dolor sit amet</div>"; break; case 1: echo "<span>Ipsum</span>"; echo "<div>Dolor sit amet</div>"; }
Прочти документацию. Не мучь себя Код (Text): $id = 1; if($id == 1 || $id == 2) echo "<span>Lorem</span><div>Dolor sit amet</div>";
Поэтому и спросил - , к сожалению, не то. Получается тоже самое, что с Код (Text): case 0: case 1: Кроме того содержимое span'ов (в отличие от div) различается (lorem и ipsum).
@Razorfen, для начала просто вынесите вывод "Dolor..." за пределы switch, в блок if($id == 1 || $id == 0) {} Ну а после - подумайте над тем, чтобы вместо того, чтобы сразу отдавать echo, формировать строковую переменную. И по окончании этого процесса - echo.
Имеете ввиду так? http://sandbox.onlinephpfunctions.com/code/85bf7ae324ef47e77532d27d721cce5a5922c171 Код (Text): <?php $id = 1; $var = "<div>Dolor sit amet</div>"; switch($id) { case 0: echo "<span>Lorem</span>"; echo $var; break; case 1: echo "<span>Ipsum</span>"; echo $var; } Это понятно, но можно сократить еще?
@Razorfen, не совсем Вот вариант с "выносом": Спойлер PHP: $id = 1; switch($id) { case 0: echo "<span>Lorem</span>"; break; case 1: echo "<span>Ipsum</span>"; } if($id == 1 || $id == 0) { echo "<div>Dolor sit amet</div>"; } --- Добавлено --- или так (с переменной): Спойлер PHP: $id = rand(0,1); // где-то в коде (до места, где требуется вывод) формируем переменную $str = '<span>'; switch($id) { case 0: $str += "Lorem"; break; case 1: $str += "Ipsum"; } if($id == 1 || $id == 0) { $str = "</span><div>Dolor sit amet</div>"; } // в том месте шаблона, где требуется - выводим echo $str; Или можно из "предопредёленных значений составить массив с индексами равными ожидаемым $id и, проверив на существование ключа этого массива - записывать в строковую переменную соответствующий элемент массива и дописывать "хвост". Ну, или выводить.