在PHP第一次创建一个类OO

时间:2013-12-11 18:17:49

标签: php

好吧,这是一个非常非常新手的问题,但是我用谷歌搜索并尝试了几种不同的方式来做这件事而没有运气。我第一次用PHP编写课程。我正在创建一个简单的类,它将查询到DataBase的电子邮件,如果该数据库中存在电子邮件,它将返回。这就是我上课的方式。

<?php
class isEmailUnique{
    private $email;
    include '../dbc/DBC.php';
    $collection = $db->members;
    $ifEmailRaw = $collection->find(array('eMail' => $email));
    $ifEmail = $ifEmailRaw  -> count();
    if($ifEmail > 0){
        return false;
    }
    else{
        return true;
    }   
}
?>

以下是我使用该课程的方式:

<?php

include 'classes/checkEmailIsUnique.php';

echo isEmailUnique->'text@test.com';

?>

这是我的错误:

Parse error: syntax error, unexpected '->' (T_OBJECT_OPERATOR), expecting ',' or ';' in /var/www/partycloud.tv/public_html/php/test.php on line 5

我想要的结果是返回1或0.

我知道这可能很容易,我只是不知道如何构建课程,我很难理解我读过的几篇文章。任何帮助都会很棒!感谢您抽出宝贵时间阅读本文!

2 个答案:

答案 0 :(得分:2)

这不是班级的工作方式。以下是代码的OOP版本的示例:

<?php
    class EmailHelper {
        private $db;

        public function __construct() {
            include '../dbc/DBC.php';
            $this->db = new DBC();
        }

        public function IsUnique($email) {
            $collection = $this->db->members;
            $ifEmailRaw = $collection->find(array('eMail' => $email));
            $ifEmail = $ifEmailRaw->count();

            return ($ifEmail <= 0);
        }

        public function IsValid($email) {
            /* Logic */
        }

        public function IsFromDomain($email, $domain) {
            /* Logic */
        }
    }

    $emailHelper = new EmailHelper();
    if ($emailHelper->IsUnique('text@test.com')) {
        echo 'Unique!';
    }
?>

答案 1 :(得分:1)

你的定义是类和函数的(非法)混合。查找如何在类中定义成员函数。作为一个提示,错误的行必须看起来更像这样,因为你的类现在被定义了:

echo isEmailUnique-&gt; check('text@test.com');

...其中check()是您定义的成员函数。可能你的意思是这样的:

echoYourYourClassNameIs-&gt; isEmailUnique('text@test.com');

...当前的类名实际上是类中的函数名...