我在获取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;
这是印刷的内容
用户存在:
答案 0 :(得分:1)
尝试
$userExists = ($numRows > 0) ? 'true' : 'false';
根据您的代码,如果$numRows
大于0
,则会返回1
,如果$numRows
为0
则会返回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
。这将表现得相似,但输出将是正确的。