0
echo "<h2 style='margin:0; padding:0;'>Recent Comments</h2>";

            if ($sth7->rowCount()) {
                while($row7 = $sth7->fetch(PDO::FETCH_ASSOC)) {
                echo "<div class='comment'>{$row7['usr']} said";
                }
            }
            else($sth7->rowCount() = 0)                                                          
            echo "User";

Can't use method return value in write context

为什么 rowcount() = 0 逻辑不起作用?

4

3 回答 3

3

= 是 PHP 中的赋值运算符。

您基本上是在尝试将 0 分配给 $sth7->rowCount()。

也许你的意思是 $sth7->rowCount() == 0?

此外,你真的不需要 if else if。它可能只是一个 if else:

if($sth7->rowCount()) {

} else {

}

rowCount() 返回一个整数,除 0 以外的任何整数都将强制转换为 true。

于 2011-09-08T23:47:11.473 回答
2

尝试rowcount() == 0与 0 进行比较,您的代码 ( rowcount() = 0) 尝试分配 0。此外,在比较 : ( ) 时将常量放在左侧可能很有用,以便0 == rowcount()更容易检测到此类错误。

于 2011-09-08T23:46:41.070 回答
0

else不采用任何逻辑,它只会在关联的 if(和任何 elseifs)没有评估为 true 时运行。

此外,=是一个赋值运算符 - 将其读作“变得等于”

$var = 1; // Var becomes equal to 1

==是一个相等运算符,它测试两个表达式是否相等

$var == 1 // Var is equal to 1

你可能想要

else if ($sth7->rowCount() == 0)                                                          
     echo "User";
于 2011-09-08T23:57:26.340 回答