PHP如果($ d = 2)不起作用

时间:2013-12-04 08:57:41

标签: php if-statement while-loop integer comparison

已经发现了这个问题。多谢你们。请立即停止投票。我知道了。不好的问题。

我正在做一个简单的while循环,并且里面有一个if语句,它不起作用......我不知道为什么。这是循环和声明:

$d = 1;
while($d <= 2) {
    if($d = 2) {
        $dayznum = $dayznum2;
    }
}

出于某种原因,循环执行两次,但$dayznum总是= $daysnum2,我无法弄清楚原因。

其他信息:

$d未在脚本中的任何其他位置使用 $dayznum$dayznum2都是integers

4 个答案:

答案 0 :(得分:2)

if条件检查必须使用=====运算符完成。因为=用于分配内容。所以试试这个

if($d == 2){
   $dayznum = $dayznum2;
}

答案 1 :(得分:2)

=时,您只使用了一个==

$d = 1;
while($d <= 2){

    if($d == 2){
        $dayznum = $dayznum2;
    }
}

如果您想检查类型,也可以使用===

答案 2 :(得分:1)

你有两个问题。

1

if($d = 2) //Problem : = is an assignment operator , you should use == or ===

更改为

if($d == 2) // Make use of == or === for checking. 

2

$d 循环中增加while的值 [否则你会遇到无限循环]

像这样改写。

$d = 1;
while($d <= 2){
    if($d == 2){$dayznum = $dayznum2;}
$d++; // Increment here.
}

答案 3 :(得分:0)

这应该有效。 将$d = 2更改为$d ==2,但您没有$d++之类的增量语句。考虑在循环中添加它

$d = 1;
    while($d <= 2){
      if($d == 2){$dayznum = $dayznum2;}

      $d++; //try to add this as well
   }