如果声明没有正确返回

时间:2014-01-04 16:54:22

标签: php

我的if语句不顺利。我必须检查$ video和&采用的都是1.我当然是在宣布它们之前。我做错了什么?

<?php if($video_id & $adopted_id == '1'): ?>
<?php echo "test"; ?>  
<?php endif; ?>

6 个答案:

答案 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。