PHP返回值从类函数不起作用

时间:2014-02-21 06:36:12

标签: php return-value ternary-operator

我在获取PHP中的类函数返回的返回值时遇到问题。返回值是否与其他语言(C,C ++,Java)的工作方式完全相同,或者还有新的东西。

这是我的班级:

class M_UserMaster
{

    private $_db = null;

    function __construct($db)
    {
        $this->_db = $db; 
    }


    function checkUserExists($mobNum)
    {
        $userExists = false;

        $sql = "SELECT STATEMENT HERE";

        $stmnt = $this->_db->prepare($sql);
        $stmnt->execute();

        $numRows = $stmnt->rowCount();

        echo '<br><br>Num Rows: ' . $numRows . '<br>***';

        $userExists = ($numRows > 0) ? true : false;

        return $userExists;
    }
}

echo语句返回0.但该函数不返回任何内容。

从另一个文件我这样称呼它:

$m_userMaster = new M_UserMaster($db);
$userExists = $m_userMaster->checkUserExists('0000000000');

echo '<br><br>User Exists: ' . $userExists;

这是印刷的内容

  

用户存在:

3 个答案:

答案 0 :(得分:1)

尝试

$userExists = ($numRows > 0) ? 'true' : 'false';

根据您的代码,如果$numRows大于0,则会返回1,如果$numRows0则会返回empty,因为它变为false。明确了解

echo true;    // Return 1
echo false;   // Return empty

答案 1 :(得分:1)

您正在尝试回显文字布尔值。 PHP将这些值打印为空字符串。你想做这样的事情,而不是:

echo '<br><br>User Exists: ' . ($userExists ? 'true' : 'false');

无论如何,这都将与第一部分相呼应。然后检查$userExists是否为真。如果是,则打印true;否则,它会打印false

答案 2 :(得分:1)

如果你这样做

$x = true;
echo $x;

您将获得输出 1

但是

$x = false;
echo $x;

您将获得空字符串作为输出

你需要做这样的事情:

echo '<br><br>User Exists: ' . ($userExists ? 'yes' : 'no');

或者将您的函数的返回值从true / false更改为1 / 0。这将表现得相似,但输出将是正确的。