我想从文件表中提取有关文件的所有信息,但该表的结构可能会发生变化。
所以,我想从表中提取所有字段名称并使用它们来生成包含信息的类变量,然后将选定的数据存储到它们中。
这可能吗?
答案 0 :(得分:4)
是的,你可以看看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;
?>
答案 1 :(得分:3)
<强>示例强>
<?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
的引用分配给它来创建。所以是的,您可以在类方法中定义类变量。