PHP-将变量的值更改为另一个变量中的后续If语句

时间:2019-03-07 13:25:29

标签: php variables if-statement

我试图创建一个包含$ team1变量的$ clause变量,并且可以为以后的If语句更改变量$ team1的值。

下面是我的代码的简化版本:

$team1 = "";

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

$team1 = 'Bears';

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

我希望If语句中的$ clause具有该值(在此示例中):

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

无论我使$ team1的值如何,输出均为“是”。如何获取If语句来正确确定$ team1的值是否满足(或不满足)$ clause中的条件?

4 个答案:

答案 0 :(得分:0)

您的if语句检查是否声明了变量。因此它将始终打印“是”。

可以使用eval来实现所需的类型,该{@ 1}}将文本转换为PHP代码。

有关更多说明,请参见http://php.net/manual/de/function.eval.php

答案 1 :(得分:0)

与某些返回函数一起使用。因为变量已经在第一个定义中打印了值。如果条件满足,请调用函数。然后更新新的变量值

    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";}

答案 2 :(得分:0)

我认为您的问题不合逻辑,因为Php将逐行执行语句, 所以 $ cause的值将是(=='Wildcats'OR =='Bulldogs')并且 然后 if($ cause)-将返回TRUE,因为如果将检查变量为'isset'和'not empty',它将不会达到您期望的条件 我建议您使用功能

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

echo checkVal('Bears');

答案 3 :(得分:0)

根据反馈,我决定需要其他方法来解决此问题。通过将团队放入一个数组($ teams),然后使用与$ team1比较的If语句遍历该数组,可以得到我想要的东西。以下代码通过更改$ 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;

感谢大家的帮助!我已经在这个论坛上使用了很多解决以前的问题,但这是我第一次真正发布该帖子。