私は、アクティブ レコード パターンに従う PHP 5.3.x のクラスの小さなセットに取り組んできました。ただし、静的プロパティを操作するときに問題が発生します。これをテストしてきたコードは次のとおりです。
<?php
class dbPreparedObject {
public static $insert = "";
public function __construct() {
static::$insert = "autoinsert_".get_called_class();
}
}
class gtRecord extends dbPreparedObject {}
class nRecord extends dbPreparedObject {}
$a = new gtRecord();
$b = new nRecord();
var_dump(gtRecord::$insert);
var_dump(nRecord::$insert);
出力:
string(18) "autoinsert_nRecord"
string(18) "autoinsert_nRecord"
ただし、最初の文字列がautoinsert_gtRecord
.
子クラスによってインスタンス化されていない静的プロパティが関連付けられているようです。public static $insert = ""
すべての子クラスで宣言せずにそれらを分離する方法はありますか?