0

PHP にいくつかの問題があります。このコードを index.php に入れました。

$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 クラスにあります。2 番目の例がテンプレート クラスで呼び出されることはわかっていますが、最終的には、self::insert や template::insert ではなく、sql::insert を呼び出します。これが私が迷っている理由です。

私の英語でごめんなさい!前もって感謝します。

PS:これは私の sql::insert メソッドです

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

1 に答える 1

-1

挿入機能を次のように変更します。

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

オブジェクトなしでクラス名を使用して呼び出すには、挿入は静的である必要があります。

于 2012-10-24T04:37:37.937 に答える