#php #if-statement
#php #оператор if
Вопрос:
Если у меня есть код, подобный этому
<?php
if( X == Y ){
find a record in the db
some condition
}
else{
do something
}
можно ли перейти к оператору else на основе some condition
?
Итак, X равно Y, но затем что-то в найденной записи db является триггером, который заставляет меня хотеть запустить else{}
код.
Я знаю, что мог бы дублировать код внутри if{}
или создать функцию.
Это не какой-то критически важный код, это скорее вопрос любопытства.
Комментарии:
1. Взгляните сюда: php.net/manual/en/control-structures.goto.php
2. Вы не можете просто запустить
else
код, но есть много способов решить подобную проблему. Решение будет зависеть от проблемы.3. NOOOOOOOOOOOO…………………….. Не
goto
делайте этого!4. @AbraCadaver как человек, который начинал с BASIC, я очень хорошо знаю, как создавать спагетти-код: o)
5. @Steve: Да, ZBasic и GW-Basic 🙂
Ответ №1:
Вы также можете сделать это без else, но с дополнительным if .
// Set a flag that tells us if we should run the code or not
$runIt = true;
if (X == Y) {
$runIt = false;
// Do cool stuff
// If some condition:
$runIt = true;
}
if ($runIt) {
// Do your stuff...
}
Ответ №2:
В PHP есть goto
инструкция, но я бы посоветовал не использовать ее, а вместо этого реструктурировать код, возможно, на что-то подобное:
function checkCondition() {
// find record in db
// some condition, return false if you want to go into else below
}
if ((x == y) amp;amp; checkCondition()) {
// action 1
} else {
// do something
}