私はこれがあまり得意ではないので、これはばかげた質問だと確信しています。
私はクラスを持っています:
class debug {
private static $messages = array();
private static $errors = array();
private static $all = array(); // includes both of above
private static $types = array('messages','errors');
public static function add($type, $message) {
if(!in_array($type,self::$types) ) {
self::add('errors','Bad type "' . $type . '" specified when sending this message: ' . $message);
return false;
}
self::$$type[] = $message; // ERROR IS HERE (see below)
self::$all[] = $message; // no error
}
}
デバッグするために別のクラスからこれを呼び出しています (サプライズ)。
debug::add('error', 'Error in ' . __FILE__ . ' on line ' . __LINE__);
error.log からの PHP エラー メッセージ:
PHP 致命的なエラー: 行 1248 の /var/www/lib/lib.php の読み取りに [] を使用できません
これは、デバッグ クラスの上記の行を参照します。
編集:
私がやろうとしているのは、可変変数 (したがって投稿タイトル) を使用して、データを追加する静的配列を決定することです。
つまり、$type == 'messages' の場合、$$type == $messages となります。
だから私は self::$$type[] == self::$messages[] が欲しい
または、$type == 'errors' の場合、$$type == $errors および self::$$type[] == self::$errors[]