2014-06-27 38 views
-4

我想在PHP中创建一个简单的类,但是我在调​​用方法时遇到了一些麻烦。类内部的调用函数

<?php 
include('MySQL.php'); 

class User { 

    var $sql; 

    function _construct(){ 
     // SQL connection 

     $this->sql = new MySQL(<<hidden>>, <<hidden>>, <<hidden>>); 
    } 

    public function login($username, $password){ 
     // TODO 
    } 
} 
?> 

//TODO部分,我想去做$this->sql->select('users')通话,但它不会让我这样做。它给出了一个错误,并说sql是一个非对象。

+0

功能? O.o –

+0

你确定你的sql连接正在工作吗?在构造函数内部使用一些mysqli错误,看看发生了什么。 –

回答

3

你的“_construct”缺少_(你必须有两个),它不会被调用。更改为:

public function __construct(){ 

它应该工作。还要记住要公开。

如果未调用它,则您的$ sql变量未初始化,并且实际上是PHP的非对象。

此外,您还可以精确的变量声明它的时候,而不是使用过时的var关键字能见度:对象的

private $sql; 
+1

如果没有提供说明符,那么它总是公开! –

+0

这是真的,但它并不伤害它的准确性。 – blue112

+0

'var $ sql;'这真的是有效的PHP?我从来没有目睹过某人声明某个类的变量。 – r3wt