2012-10-24 38 views
0

我在PHP索姆问题,我把这个代码在我的index.php:(PHP/OOP)方法不会在两个方向上工作

$test = $wke ->sql 
      ->insert("test") 
      ->values(array("foo" => "bar")) 
      ->go(); 

此代码工作得很好,但是当我使用这个代码一种方法(debug.class.php)是这样的:

$test = sql::insert("test") 
      ->values(array("foo" => "bar")) 
      ->go(); 

它不工作:

Fatal error: Call to undefined method template::values() [...] 

我的 “插入”(和 “值”)的方法是在我的SQL类,不是我的模板课。我知道我的第二个例子在我的模板类中调用,但在最后,我调用了sql :: insert,而不是self :: insert或template :: insert。这就是我迷失的原因。

对不起,我的英文!先谢谢你。

PS:这是我的SQL :: insert方法

static $queryBuffer; 
public function insert($in) { 
    self::$queryBuffer->type = "insert"; 
    self::$queryBuffer->data->insert = $in; 
    return $this; 
} 
+0

由于在你的SQL类中'insert'不是'static',我不认为你可以使用'sql :: insert'。 – Passerby

回答

-1

更改您的插入功能如下。

static $queryBuffer; 
public static function insert($in) { 
    self::$queryBuffer->type = "insert"; 
    self::$queryBuffer->data->insert = $in; 
    return $this; 
} 

插入应该是静态的,以便在没有对象的情况下调用类名。

+0

但是,如果您使用'static',则不能使用'return $ this'。 –