PHP - изменить значение переменной для последующего оператора If в другой переменной - PullRequest
0 голосов
/ 07 марта 2019

Я пытаюсь создать переменную $ clause, которая содержит переменную $ team1 и может изменить значение переменной $ team1 для более поздней инструкции If.

Ниже приведена упрощенная версия моего кода:

$team1 = "";

$clause = "$team1 == 'Wildcats' OR $team1 == 'Bulldogs";

$team1 = 'Bears';

if ($clause) { echo "Yes"; }
else {echo "No";}

Я бы хотел, чтобы предложение $ в операторе If имело значение (в этом примере):

'Bears' == 'Wildcats' OR 'Bears' == 'Bulldogs";

Независимо от того, что я делаю значение $ team1, вывод "Да". Как получить оператор If, чтобы правильно определить, соответствует ли значение $ team1 (или нет) условию в условии $?

Ответы [ 4 ]

0 голосов
/ 07 марта 2019

Основываясь на отзывах, я решил, что мне нужен другой подход для решения этой проблемы.Я смог получить то, что хотел, поместив команды в массив ($ groups), а затем перебрав этот массив с помощью оператора If по сравнению с $ team1.Следующий код работает так, как я хочу, изменяя значение $ team1.

$teams = array('Wildcats', 'Bulldogs', 'Cougars');
$team1 = 'Bears';

$count = 0;
$met = "no";

do {
    if($team1 == $teams[$count]) { $met="yes"; break;}
    $count++;
} while ($count < count($teams));


echo $met;

Спасибо всем за помощь!Я много раз использовал этот форум для решения предыдущих проблем, но впервые публикую его.

0 голосов
/ 07 марта 2019

используется с некоторой возвращаемой функцией. Потому что переменная уже напечатала значение в первом определении. Так что вызывайте функцию после того, как условие выполнено. Затем новое значение переменной было обновлено

    function varReset($team1){
    return "$team1 == 'Wildcats' OR $team1 == 'Bulldogs";
}
$team1 = "";
$clause = varReset($team1);
$team1 = 'Bears';
if ($clause) {
    $clause = varReset($team1);
    echo $clause;
    echo "Yes";
}
else {echo "No";}
0 голосов
/ 07 марта 2019

Я думаю, что ваш вопрос нелогичен, потому что Php будет выполнять оператор построчно, так $ причина будет равна (== 'Wildcats' OR == 'Bulldogs') и затем if ($ reason) - вернет TRUE, потому что если проверит, что переменная isset и не пуста, она не будет работать так, как вы ожидали Я рекомендую вам использовать функцию

function checkVal($param) {
    return ($param == 'Wildcats' || $param == 'Bulldogs') ?  "Yes" : "No";
}

echo checkVal('Bears');
0 голосов
/ 07 марта 2019

Ваш оператор if проверяет, объявлена ​​переменная или нет.Так что всегда будет печататься «Да».

Требуемый тип можно получить с помощью eval, который переводит текст в PHP-код.

См. http://php.net/manual/de/function.eval.php для дальнейших инструкций.

...