Пропустить родительский при использовании PHP - PullRequest
2 голосов
/ 18 августа 2011

Не уверен, если это вообще возможно, но основная идея кода заключается в следующем:

if(isset($_POST['submit'])) {
    if($_POST['field'] == 0) {
        // do not process the code in the if statement
    }
    // code to process if the above validation criteria is not met
}

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

Я без радости воспользовался оператором continue, полагаю, что он работает только с циклами.

Спасибо!

Ответы [ 3 ]

4 голосов
/ 18 августа 2011
if(isset($_POST['submit']) && $_POST['field'] != 0) {

}

Как функция

function testCondition() {
   return isset($_POST['submit']) && 
          $_POST['field'] != 0;
}

if (testCondition()) { ... }
2 голосов
/ 18 августа 2011

Вы можете поместить все это в функцию, а затем вызвать 'return' изнутри 'if':

if(isset($_POST['submit']) && validate_form())
{
    ...
}

function validate_form()
{
    if($_POST['field'] == 0) {
        return false;
    }
    if(another check that fails) {
        return false;
    }
    ...
    return true;
}
1 голос
/ 18 августа 2011

Чтобы выполнить это, как вы изначально хотели, вам нужно использовать оператор break. Из руководства по PHP :

$arr = array('one', 'two', 'three', 'four', 'stop', 'five');
while (list(, $val) = each($arr)) {
    if ($val == 'stop') {
        break;    /* You could also write 'break 1;' here. */
    }
    echo "$val<br />\n";
}

/* Using the optional argument. */

$i = 0;
while (++$i) {
    switch ($i) {
    case 5:
        echo "At 5<br />\n";
        break 1;  /* Exit only the switch. */
    case 10:
        echo "At 10; quitting<br />\n";
        break 2;  /* Exit the switch and the while. */
    default:
        break;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...