PHP-如何从字符串内容分配类变量和值?
问题描述:
我有一个字符串,我试图用来创建一个类。我试图命名每个属性并根据字符串的内容定义它的值。例如:PHP-如何从字符串内容分配类变量和值?
$mystring = "first_name=jane,last_name=doe";
$pieces = explode(",", $mystring);
foreach($pieces as $key => $value){
$eachvalue = explode("=",$value);
class MyClass {
public $eachvalue['0'] = $eachvalue['1'];
}
} // end foreach
$obj = new MyClass;
echo $obj->first_name; // Should echo "Jane"
我很新的PHP类,这是行不通的。我不知道我是否接近,或者如果我走了......?
答
正确的方法是:
// Class definition
class MyClass {
public $first_name;
public $last_name;
}
$mystring = "first_name=jane,last_name=doe";
// Instantiate the class
$obj = new MyClass;
// Assign values to the object properties
$pieces = explode(",", $mystring);
foreach ($pieces as $key => $value) {
// this allows you to assign the properties dynamically
list($name, $val) = explode("=", $value);
$obj->$name = $val;
} // end foreach
echo $obj->first_name; // Should echo "Jane"
一个类只能被定义一次 - 通过将其在循环中,你是在循环的每次迭代宣布它。另外,一个类不会在对象的实例中保存所需的值,它是描述对象将如何的骨架。所以你要做的是定义这个类,实例化它,然后给它赋值。
+0
这很好。谢谢!我可以理解这个例子的工作原理。再次感谢。 – JROB 2012-04-12 16:48:19
http://stackoverflow.com/questions/1203625/dynamically-generate-classes-at-runtime-in-php – NAVEED 2012-04-12 16:43:18