2012-04-12 60 views
2

我有一個字符串,我試圖用來創建一個類。我試圖命名每個屬性並根據字符串的內容定義它的值。例如: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類,這是行不通的。我不知道我是否接近,或者如果我走了......?

+0

http://stackoverflow.com/questions/1203625/dynamically-generate-classes-at-runtime-in-php – NAVEED 2012-04-12 16:43:18

回答

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" 

一個類只能被定義一次 - 通過將其在循環中,你是在循環的每次迭代宣佈它。另外,一個類不會在對象的實例中保存所需的值,它是描述對象將如何的骨架。所以你要做的是定義這個類,實例化它,然後給它賦值。

+0

這很好。謝謝!我可以理解這個例子的工作原理。再次感謝。 – JROB 2012-04-12 16:48:19