0

現在、基本的に3つの重要なファイルがあります。DBクラスの関数をLOGINクラスで使いたい。これらは私のファイルです。DB クラスをインクルードしようとしましたが、それを 2 回宣言することになり、それはできません。

---- 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 クラスのインスタンスなしで呼び出せるようにします。

ログイン::セキュアパスワード()

于 2012-08-30T01:12:29.513 に答える
0

Database クラスをファイル Database.php に移動します。index.php の先頭で、require_once('Database.php'); を使用します。Database クラスを含めます。次に、 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 に答える