Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
首次在PHP中创建类OO_Php - Fatal编程技术网

首次在PHP中创建类OO

首次在PHP中创建类OO,php,Php,好的,这是一个非常非常新的问题,但我已经在谷歌上搜索并尝试了几种不同的方法,但没有运气。我第一次用PHP制作一个类。我正在创建一个简单的类,它将查询一封发送到数据库的电子邮件,并返回该数据库中是否存在该电子邮件。这是我如何上这门课的 <?php class isEmailUnique{ private $email; include '../dbc/DBC.php'; $collection = $db->members; $ifEmailRaw =

好的,这是一个非常非常新的问题,但我已经在谷歌上搜索并尝试了几种不同的方法,但没有运气。我第一次用PHP制作一个类。我正在创建一个简单的类,它将查询一封发送到数据库的电子邮件,并返回该数据库中是否存在该电子邮件。这是我如何上这门课的

<?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;
    }   
}
?>
我想要的结果是它返回1或0


我知道这可能很容易,我只是不知道如何构造一个类,我很难理解我读过的几篇文章。这方面的任何帮助都会很棒!感谢您抽出时间阅读此文章

这不是上课的方式。下面是代码的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!';
    }
?>

您的定义是类和函数的(非法)混合体。查看如何在类中定义成员函数。作为提示,出错的行必须看起来更像这样,因为您的类现在已定义:

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

…其中check()是您定义的成员函数。也许你的意思更像这样:

回显您的类名称->isEmailUnique('text@test.com');


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

您是否遵循了教程?看起来你只是在猜测。阅读您所拥有的,在没有特定上下文的情况下,类定义中有几个语句。除了
私人$email,其他所有内容都属于某些分类的类方法。但具体的位置取决于您试图实现的目标。以下是我想了解的,变量“$db”从何而来?为什么总是有这个函数“u construct()”?谢谢你这么多的回答顺便说一句@user2287474
\u构造
在使用
新类()时立即被调用。然后它将
$this->db
(参考
private$db
)设置为
new DBC()
(或者您创建数据库对象的方式),当您想要引用
$db
变量时,您可以在保存它时使用
$this->db
。这是从来没有人向您解释过的。完全有道理。我真的需要一点解释。非常感谢你!堆栈溢出在5分钟内不会让我接受答案,5分钟后见!是的,那就是我遇到麻烦的地方。通常我只使用一个函数,但因为我想封装某些东西,比如
include'../dbc/dbc.php'我需要使用一个类,我只是不知道如何在PHP中实际使用一个。谢谢你的回复!
Parse error: syntax error, unexpected '->' (T_OBJECT_OPERATOR), expecting ',' or ';' in /var/www/partycloud.tv/public_html/php/test.php on line 5
<?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!';
    }
?>