我有一个字符串,我正在尝试用来创建一个类.我试图命名每个属性,并根据字符串的内容定义其值.例如:
$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"
Run Code Online (Sandbox Code Playgroud)
我是相当新的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"
Run Code Online (Sandbox Code Playgroud)
一个类只能定义一次 - 通过将它放在循环中,您在循环的每次迭代中声明它.此外,类不会保存您在对象实例中所需的值,它是描述对象如何的骨架.所以你要做的是定义类,实例化它,然后为它赋值.