这是一个糟糕的比较结果 - PHP

时间:2010-09-17 19:44:20

标签: php comparison

我有一个连接数据库的函数,它返回一个数字和第二个函数,它返回一个文件的大小。 如果我使用echo函数查看结果函数:variable1 = 1345064,variable2 = 135

,但是当我使用比较时,给我错误的结果:

if($variable1 < $variable2)

{

   echo 'This code is displayed';

}

else

{

   echo 'This code should display';

}

出了什么问题?


我的源代码:

<?php
include 'funkcje.inc';
    $login = $_GET['login'];
            $fsize = WielkoscPliku2($file);

    $tmp = $fsize / 1000000;

$zmienna1 = SprTransfer($login);
$zmienna2 = floor($tmp);

      if($zmienna1 < $zmienna2)
    {
        echo "This code is displayed";  
    }
    else
    {
            echo "This code should be displayed";
         }
    ?>

SprTransfer功能:

<?php
require "connection.php";
connection(); 

...

function SprTransfer($login)
{
$zapytanie = "SELECT `transfer` FROM `uzytkownicy` WHERE `nick`='$login'";
    $idzapytania = mysql_query($zapytanie);
    $sprwaznosc = mysql_fetch_row($idzapytania);
    return $sprwaznosc[0];
}
?>

主档案:

include 'funkcje.inc';

    $login = $_GET['login'];

            $fsize = WielkoscPliku2($file);


    $tmp = $fsize / 1000000;


$zmienna1 = SprTransfer($login);

$zmienna2 = floor($tmp);


      if($zmienna1 < $zmienna2)

    {

        echo "This code is displayed";



    }

    else

    {

            echo "This code should be displayed";

         }




function.inc file:


require "connection.php";

connection(); 



function SprTransfer($login)

{

$zapytanie = "SELECT `transfer` FROM `uzytkownicy` WHERE `nick`='$login'";

    $idzapytania = mysql_query($zapytanie);

    $sprwaznosc = mysql_fetch_row($idzapytania);

    return $sprwaznosc[0];


}

4 个答案:

答案 0 :(得分:4)

您使用的是错误的变量名称。变量需要以$开头。

$variable1 = 4;
$variable2 = 5; 

if ($variable1 < $variable2) {
    echo 'Yep';
}else {
    echo 'Nope';
}

您应该查看basic syntax of PHPVariables Section

答案 1 :(得分:2)

可能是变量前的$:

if($variable1 < $variable2)

答案 2 :(得分:1)

假设错过$只是一个错字......

当您遇到此类问题时,最好的方法是发布完整的工作代码示例。例如,下面的代码可以正常工作。它显示“应显示此代码”。 你跑的时候会发生什么?这段代码和你的代码有什么区别?回答这两个问题,你至少会指出你的答案:

<?php

    $variable1 = 1345064;
    $variable2 = 135;
    if ($variable1 < $variable2) {
        echo "This code is displayed";
    }
    else {
        echo "This code should be displayed";
    }
?>    

答案 3 :(得分:1)

我不确定如何,但看起来你将数字解释为字符串。

例如,这将显示This code is displayed

<?php

    $variable1 = "1345064a";
    $variable2 = "135a";
    if ($variable1 < $variable2) {
        echo "This code is displayed";
    }
    else {
        echo "This code should be displayed";
    }

    // Output: This code is displayed
?> 

exmple


将变量投射到int

<?php

    $variable1 = "1345064a";
    $variable2 = "135a";
    if ((int) $variable1 < (int) $variable2) {
        echo "This code is displayed";
    }
    else {
        echo "This code should be displayed";
    }

    // Output: This code should be displayed
?>  

example


调试:

您可以使用 gettype() 检查变量的类型。您永远不应该使用gettype()的输出来测试一个特定类型,因为输出字符串可能会从一个版本的PHP更改为另一个版本。