печать динамически заданных проприет в объекте

как печатать динамические свойства добавления в следующем классе?

class Car { function __construct() { } function setInfo($car_arr) { foreach ($car_arr as $key => $value) { $this->{$key} = $value; } } } 

установить объект класса, например, ниже

 $car1 = new Car(); $car1->setInfo(array('make' => 'Toyota', 'model' => 'scp10')); $car2 = new Car(); $car2->setInfo(array('anme1' => 'value1', 'anme2' => 'value2')); 

теперь я хочу напечатать ремень автомобиля

 make = Toyota model = scp10 

Related of "печать динамически заданных проприет в объекте"

Пытаться :

 $car1 = new Car(); $car1->setInfo(array('make' => 'Toyota', 'model' => 'scp10')); echo $car1->make; echo $car1->model; 
 <?php class Car { function __construct() { } function setInfo($car_arr) { foreach ($car_arr as $key => $value) { $this->{$key} = $value; } } } $car1 = new Car(); $car1->setInfo(array('make' => 'Toyota', 'model' => 'scp10')); echo "Make value is : " . $car1->make. ", Model value is : ". $car1->model; ?> 

выше выходного кода Make value is : Toyota, Model value is : scp10

Пожалуйста, подумайте о сохранении свойств в явном виде, как я указал в этом ответе :

 <?php class Car { private $data = array(); function setInfo(array $carInfo) { foreach ($carInfo as $k => $v) { $this->data[$k] = $v; } return $this; } function __set($key, $val) { $this->data[$key] = $val; } function __get($key) { return $this->data[$key]; } } $car = new Car(); $car->setInfo(array('make' => 'Toyota', 'warranty' => '5 years')); 

Я считаю это более «чистым», но это, вероятно, спорно.

Я думаю, что вы ищете что-то вроде этого PHP Magic Methods

Например, это:

 <?php class A { public $var1; public $var2; public static function __set_state($an_array) // As of PHP 5.1.0 { $obj = new A; $obj->var1 = $an_array['var1']; $obj->var2 = $an_array['var2']; return $obj; } } $a = new A; $a->var1 = 5; $a->var2 = 'foo'; eval('$b = ' . var_export($a, true) . ';'); // $b = A::__set_state(array( // 'var1' => 5, // 'var2' => 'foo', // )); var_dump($b); ?> 

Это тоже будет полезно.

Вы можете получить все свойства, используя get_object_vars ():

 $vars = get_object_vars($car1); foreach ($vars as $key => $value) { echo $key . ' = ' . $value . '<br />'; }