为什么下面的PHP代码给出了这样的结果

时间:2014-03-07 03:54:00

标签: php

当我在$count之前回显变量if else时,它会显示3.但是在elseif else之后,它会给出0.可以有人帮助我,为什么会这样。

$arr = array(1,3,5);
$count = count($arr);
if ($count = 0) {
  echo "An array is empty.";
} else {
  echo "An array has $count elements.";
}

8 个答案:

答案 0 :(得分:3)

您使用了赋值运算符而不是相等运算符:

if ($count = 0) {
//         ^ You meant == or ===

Read more about PHP operators

答案 1 :(得分:1)

您正在使用赋值运算符“=”而不是比较运算符“==”。

为了避免这种类型的错误,你应该尝试

if(0 == $count) { // best practice to avoid assignment mistakes

答案 2 :(得分:0)

使用===进行比较:

if ($count === 0) {

但是一个空数组是假的,所以你可以在没有count的情况下执行此操作:

$arr = array(1,3,5);
if ($arr) {
  echo "An array has elements.";
} else {
  echo "An array is empty.";
}

答案 3 :(得分:0)

你必须使用

if ($count == 0) {

而不是$ count = 0 if。

答案 4 :(得分:0)

当你实际上意味着分配时,你使用单个等于测试相等性。

更改为双等号。

答案 5 :(得分:0)

=是分配运算符(assign),==是比较(comparison)运算符。

将您的状况改为:

试试这个:

if ($count == 0) {

 if ($count === 0) {

答案 6 :(得分:0)

如果条件,将operator =更改为==。

 $arr = array(1,3,5);
    $count = count($arr);
    if ($count == 0) {
      echo "An array is empty.";
    } else {
      echo "An array has $count elements.";
    }

答案 7 :(得分:0)

您没有使用比较运算符。

应该是:

if ($count == 0 )