Intereting Posts
Изменение пароля yii2 путем проверки текущего пароля с введенным паролем Задайте значение переменной в одной функции и используйте в других функциях при вызове непосредственно из ссылки в codeigniter Symfony на виртуальном хосте (проблема с корневым документом) mysqli bind_param для массива строк Favicon для PNG в PHP Анализ и редактирование XML-файла в PHP Вызвать javascript-код после нажатия кнопки, а затем обновить страницу Php и MySQL GROUP_CONCAT с запятой разделителя и поиск, где concat запятой YAML или serialize () для хранения данных в MySQL Laravel Многие для многих ссылок на справочные таблицы работают только в одном направлении Обработка загружаемых загрузок plupload на стороне сервера Laravel – последняя дата и время входа в систему времени хранить множественные значения в сеансе php PHP разные односторонние хэши для защиты паролем Как преобразовать CamelCase в camel_case?

PHP: можно ли переходить из одного случая в другой внутри коммутатора?

У меня есть переключатель, где в очень редких случаях мне, возможно, придется перейти к другому делу, я ищу что-то вроде этого:

switch($var){ case: 'a' if($otherVar != 0){ // Any conditional, it is irrelevant //Go to case y; }else{ //case a } break; case 'b': //case b code break; case 'c': if($otherVar2 != 0){ // Any conditional, it is irrelevant //Go to case y; }else{ //case c } break; . . . case 'x': //case x code break; case 'y': //case y code break; default: // more code break; } 

Есть ли опция GOTO, я где-то краснею, но не могу ее найти или, может быть, другое решение? Благодарю.

Вам нужен PHP 5.3 или выше, но здесь:

Вот функциональность goto из http://php.net/manual/en/control-structures.goto.php

 <?php $var = 'x'; $otherVar = 1; switch($var){ case 'x': if($otherVar != 0){ // Any conditional, it is irrelevant goto y; }else{ //case X } break; case 'y': y: echo 'reached Y'; break; default: // more code break; } ?> 

Как насчет каскадирования (или нет) на основе дополнительного условия?

 case 'x' : if ($otherVar == 0) { break; } case 'y' : 

Вместо использования каких-либо трюков в swtich-корпусе лучшей логикой может быть следующее.

  function func_y() { ... } switch($var){ case: 'x' if($otherVar != 0){ // Any conditional, it is irrelevant func_y(); }else{ //case X } break; case 'y': func_y(); break; default: // more code break; }