php对象构造函数不起作用

时间:2014-03-21 08:48:02

标签: php default-constructor

我想将一个对象实例化为其他对象构造函数。

我的问题是第一个对象MysqlConnector有一个构造函数,但在我执行实例时它不起作用。

我调试了代码,无法在new MysqlConnector();的构造函数中输入

 <?php
class MysqlConnector 
{
    public $connection;

    function __constuct()
    {
        $this->connection = mysql_connect(Config::MYSQL_HOST, Config::MYSQL_DBUSER, Config::MYSQL_DBPASS);
        if(!$this->connection) 
        {
            die("Connection Failed" . mysql_error());
        }

        mysql_select_db(Config::MYSQL_DBNAME);
        mysql_set_charset('utf8');
    }

    public function __destruct() 
    {
        mysql_close($this->connection);
    }
}
?>

这是我要创建MysqlConnector对象的类:

 <?php
class Config 
{
    const DEBUG_MODE = true;

    const WEB_URL = "http://localhost:8080/";
    const WEB_PATH = "c:/Apache2.2/htdocs/";

    const MYSQL_HOST = "localhost";
    const MYSQL_DBNAME = "xxx";
    const MYSQL_DBUSER = "xxx";
    const MYSQL_DBPASS = "xxx";

    public function __construct() 
    {
        if(self::DEBUG_MODE)
        {
            error_reporting(-1);
        }
        else
        {
            error_reporting(0);
        }

        $this->autoLoad();
        new MysqlConnector();
    }

    private function autoLoad()
    {
        require_once self::WEB_PATH . "db/MysqlConnector.php";
    }
}
?>

2 个答案:

答案 0 :(得分:1)

正如您现在编写的那样,MySqlConnector()的析构函数将在Config上运行一次__construct()。

您可能需要$this->db = new MySqlConnector()

之类的内容

也是函数名__construct

中的拼写错误

答案 1 :(得分:0)

您的class MysqlConnector

上有拼写错误

应该是

function __construct()

而不是

function __constuct()  //<--- You are missing a `r`