0

我现在基本上有3个重要文件。我想在 LOGIN 类中使用 DB 类中的函数。这些是我的文件。我尝试包含 DB 类,但随后我会声明它两次,这是你不能做的。

---- index.php ---- -- 显示内容 --

<?php
     session_start();


include './libs/database.php';

$mysql = new Database();

include './libs/login.php';

$login = new Login();

$mysql->connect("---", "user", "pass"); 
$mysql->usedatabase("db"); 

    ?>

<!DOCTYPE html>
    <html>
        <body>
            <div id="wrapper">

                             CONTENT GOES HERE

            </div>          
        </body>

    </html>
---


---login.php ---

    class Login{

        public function isLoggedIn(){

            if(isset($_SESSION['user_id'])){

                return true;

            }else{
                return false;
            }
        }


        public function UserLogin($email,$password){
            // login function
                        $DB->selectwhere(...);
        }

        public function securePassword($pass){

            $pass =  md5($pass);

                return $pass;
        }
    }

---



--- database.php ---

 class Database{


       //Database Functions


 }
4

4 回答 4

2

查看 PHP 的“自动加载”功能。只有当堆中不存在类时,您才能真正按需查找类。

于 2012-08-29T17:30:50.080 回答
1

将 Login 中的 securePassword() 函数设为静态函数,这样您就可以在没有 Login 类实例的情况下调用它。

登录::securePassword()

于 2012-08-30T01:12:29.513 回答
0

将您的数据库类移动到文件 Database.php。在 index.php 的顶部,使用 require_once('Database.php'); 包括数据库类。然后将 UserLogin() 函数更改为:

    public function UserLogin($email,$password){
        // login function
                    $DB = new Database;
                    $DB->selectwhere(...);
    }
于 2012-08-29T17:35:07.057 回答
0

阅读有关关键字 extends 的 PHP.net 文档:http ://www.php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends

一个类可以通过在类声明中使用关键字 >extends 来继承另一个类的方法和属性。

所以你的登录类将是

class Login extends Database{

    public function isLoggedIn(){

        if(isset($_SESSION['user_id'])) {
            return true;
        }
        else {
            return false;
        }
    }


    public function UserLogin($email,$password){
        parent::login();
    }

    public function securePassword($pass){
        $pass =  md5($pass);
        return $pass;
    }
}

您可以使用访问 Database 类的属性或方法

parent::var_name
parent::method()
于 2012-08-29T18:38:09.197 回答