Verify方法返回true


Verify method returns true

我正在尝试验证类中的方法是否返回真值。请查看类下面的对象,并告诉我它是否是有效的语句。我正在使用它来验证数据库中是否已经存在电子邮件地址。

我的类和它的构造函数

class CheckEmail {
public function __construct($email) {
$db = Database::GetHandler();
    $sql = "SELECT email from users WHERE email='$email'";
    $stmt = $db->prepare($sql);
    $stmt->execute();
    $rows = $stmt->rowCount();
    if($rows > 0) {
        return true;
    } else {
        return false;
    }
}
}

我的这个类的对象:

if($checkEmail = new CheckEmail($_POST[email])==true) {...

构造函数不能返回值,这没有任何意义。构造函数在那里创建(并返回)其类的对象。

您应该制作另一个函数来进行此检查,然后调用它。

class CheckEmail {
    public function check($email) {
        $db = Database::GetHandler();
        $sql = "SELECT email from users WHERE email='$email'";
        $stmt = $db->prepare($sql);
        $stmt->execute();
        $rows = $stmt->rowCount();
        if($rows > 0) {
            return true;
        }
        else {
            return false;
        }
    }
}

(附言:你可以做return $rows > 0;

然后你可以这样称呼它:

var $email = new CheckEmail;
if($email->check($_POST[email]) === TRUE){
// or just if($email->check($_POST[email])){

问题是,你真的需要在这里上课吗?您可以正常地声明CheckEmail函数,而不是在它自己的类中。

构造函数不返回值。你需要一种不同的方法。http://www.php.net/manual/en/language.oop5.decon.php

尝试放置

$checkEmail = new CheckEmail($_POST[email]);

在if语句之前,然后

If($checkEmail) {...