-1

私は2つのPHPクラスを持っています。最初のものは次のようなものです:

<?php 
     $myclass = new MainClass;

     class MainClass{
              public $login;

              public function __construct(){
                  require_once('login.class.php');
                  $this->login = new login;
              }

              public function mysql(){
                  mysql_connect("localhost","root","");
              }   


     }
?>

そして、私のログインクラスは次のとおりです。

<?php

   class Login{

           public function checkDB(){
               //**** how do I call mysql on MainClass here ?*****
          }
    }
?>

Login は Main Class の子クラスではないことに注意する必要があります。それで、 Login Class から MainClass の関数を呼び出す方法を知りたいですか?mysql

4

4 に答える 4

2

Method1: : 派生クラス、

<?php
require_once('MainClass.php'); // MainClass store as a php file
   class Login extends MainClass{

           public function checkDB(){
               $this->mysql(); //**** call mysql from MainClass here
          }
    }
?>

Method2: : オブジェクト インスタンス、

<?php
require_once('MainClass.php'); // MainClass store as a php file
$check_mysql = new MainClass();

   class Login extends MainClass{

           public function checkDB(){
               $check_mysql->mysql(); //**** call mysql from MainClass here
          }
    }
?>

注: MySQL 関数は非推奨であるため使用しないでください。DB の接続にはmysqliまたはを使用してください。PDO

于 2013-01-07T04:43:31.370 に答える
1

このコードを使用すると、オブジェクトを作成しMainClassてmainClass関数を呼び出すだけです。

<?php

class Login{

       public function checkDB(){
           $main = new MainClass();
           $main->mysql();
      }
}
?>
于 2013-01-07T04:38:51.533 に答える
1

これにオブジェクト指向ハンドラーを使用する場合は、車輪を再発明するのではなく、mysqliクラスを使用します。ドキュメントはこちら、コード例は以下のとおりです。

class Login extends mysqli {
  public function __construct($loginid) {
    $this->id = $loginid; // example of wrapping
    parent::__construct( /* login constants go here */ );
  }
  . . .
  // other functions that can have direct access to the mysqli:: class
}
于 2013-01-07T04:50:29.297 に答える
0

shapeshifter がコメントで述べたように、他のクラスから参照できるクラスが必要です。代わりに、おそらく次のようにします。

<?php
$database = new MainClass();
class Login
{
   public function checkDB($database)
   {
       $database->mysql();
   }
}
?>
于 2013-01-07T04:45:01.740 に答える