2

我有一个字符串,我试图用它来创建一个类。我正在尝试命名每个属性并根据字符串的内容定义其值。例如:

$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 类,这不起作用。我不知道我是否接近,或者我是否远离......?

4

1 回答 1

5

正确的方法是:

// 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"

一个类只能定义一次 - 通过将其放入循环中,您将在循环的每次迭代中声明它。此外,类不会在对象的实例中保存您想要的值,它是描述对象将如何的骨架。所以你要做的是定义类,实例化它,然后给它赋值。

于 2012-04-12T16:41:49.440 回答