Verify方法返回true

时间:2012-03-15 18:42:01

标签: php

我正在尝试验证我班级中的方法是否返回了真值。请查看课程下面的我的对象并告诉我它是否是有效的声明。我使用它来验证数据库中是否已存在电子邮件地址。

我的班级和它的构造函数

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) {...

3 个答案:

答案 0 :(得分:4)

构造函数无法返回值,这没有任何意义。构造函数用于创建(并返回)其类的对象。

您应该创建另一个函数来执行此检查,然后调用它。

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;
        }
    }
}

(P.S。你可以做return $rows > 0;

然后你可以这样称呼它:

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

事情是,你真的需要上课吗?你可以正常声明CheckEmail函数,而不是在它自己的类中声明。

答案 1 :(得分:3)

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

答案 2 :(得分:-3)

尝试放

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

在if语句之前,

If($checkEmail) {...