我的if语句不顺利。我必须检查$ video和&采用的都是1.我当然是在宣布它们之前。我做错了什么?
<?php if($video_id & $adopted_id == '1'): ?>
<?php echo "test"; ?>
<?php endif; ?>
答案 0 :(得分:2)
使用:
if($video_id == '1' && $adopted_id == '1'):
或:
if($video_id == '1' && $adopted_id == $video_id):
&
运算符不是您正在考虑的AND运算符。请改用&&
。此外,必须测试每个变量的值。你不能只翻译:
视频和采用者应该等于1
直接代码。
答案 1 :(得分:1)
使用逻辑and
(&amp;&amp;)。你正在使用按位AND
(&amp;)
<?php if($video_id && $adopted_id == '1'): ?>
上述条件检查$ video_id是否有值且$ adoption_id是否等于1.
要检查两个值是否均为1
,您需要
<?php if($video_id == '1' && $adopted_id == '1'): ?>
作为检查数值,您无需使用字符串1
进行检查。
<?php if($video_id == 1 && $adopted_id == 1): ?>
答案 2 :(得分:0)
您不需要多个PHP标记:
<?php
if($video_id == '1' && $adopted_id == '1'):
echo "test";
endif;
?>
答案 3 :(得分:0)
你不能这样做
<?php if($video_id & $adopted_id == '1'): ?> // if(true && true?/false?)
更改为:
<?php if($video_id == '1' && $adopted_id == '1'): ?> // if(true?/false? AND true?/false?) //logical AND is &&
答案 4 :(得分:0)
试试这个,需要使用&&
<?php if($video_id==1 && $adopted_id == 1): ?>
而不是
<?php if($video_id & $adopted_id == '1'): ?>
答案 5 :(得分:0)
One&amp;是按位和操作,它查看每一侧的两个表达式,将它们分解为位级别并对每个位执行和操作。这不是很多程序员经常使用或需要的东西。
相反,请使用&amp;&amp;运营商。这是更传统的逻辑和。其他运营商也是如此。使用|| for or,not not |,== for comparison not =(这是赋值)。
有关所有php运算符的列表,请查看此处:php operators
此外,虽然我们说“a和b等于1”是有意义的,但编译器不会理解“a&amp;&amp; b == 1”。这将检查'a'本身是否为真,然后如果b == 1.'a'本身是真的听起来很奇怪,但想象a是值true或false并且它会更有意义。相反,你需要写(a == 1&amp;&amp; b == 1)。如果您正在检查$ video_id是否为1,因为它可能为0,并且您不必担心其他数字,如4或17或其他任何数字,您实际上可以编写以下内容:
if ($video_id && $adopted_id):
这可能看起来很奇怪,但是当你没有任何==符号时你正在检查的是它们不是'0'。如果任一变量为0,则此语句将为false。