ファイルに関するすべての情報をファイルテーブルから取得したいが、そのテーブルの構造が変更される可能性があります。PHPのクラスメソッドからクラス変数を定義できますか?
だから、テーブルからすべてのフィールド名を取り出し、それらを使って情報を含むクラス変数を生成し、選択したデータをそこに格納したいと思います。
これは可能ですか?
ファイルに関するすべての情報をファイルテーブルから取得したいが、そのテーブルの構造が変更される可能性があります。PHPのクラスメソッドからクラス変数を定義できますか?
だから、テーブルからすべてのフィールド名を取り出し、それらを使って情報を含むクラス変数を生成し、選択したデータをそこに格納したいと思います。
これは可能ですか?
サンプル
<?php
class TestClass
{
public $Property1;
public function Method1()
{
$this->Property1 = '1';
$this->Property2 = '2';
}
}
$t = new TestClass();
$t->Method1();
print('<pre>');
print_r($t);
print('</pre>');
?>
出力
TestClass Object
(
[Property1] => 1
[Property2] => 2
)
ご覧のとおり、定義されていないプロパティは、$this
への参照を使用して割り当てただけで作成されました。したがって、はい、クラスメソッドの中からクラス変数を定義することができます。
はい、あなたはPHPのオーバーロードを参照してください。
http://php.net/manual/en/language.oop5.overloading.php
クイック例:(これは偉大な使い方ではないではありません)
<?php
class MyClass{
var $my_vars;
function __set($key,$value){
$this->my_vars[$key] = $value;
}
function __get($key){
return $this->my_vars[$key];
}
}
$x = new MyClass();
$x->test = 10;
echo $x->test;
?>
おそらく関連性があります:http://stackoverflow.com/questions/6643132/store-variables-from-mysql-select-to-php-class-variables-more-efficiently-when-th/6643211#6643211 – SteAp
'$ this-> someVar = 'foo';と書くだけで動作するはずです。 – Tower