我试图创建一个包含$ 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中的条件?
答案 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;
感谢大家的帮助!我已经在这个论坛上使用了很多解决以前的问题,但这是我第一次真正发布该帖子。