-1

我有两个 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 ?*****
          }
    }
?>

我需要提一下,登录不是主类的子类。所以我想知道如何mysql从 Login Class 调用 MainClass 上的函数?

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 函数,因为它们已被弃用,所以使用mysqliorPDO连接数据库。

于 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该类。文档here,代码示例如下:

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 回答