Wie kann ich eine Eigenschaft aus einem bestimmten Argument in der Methode eines Objekts erstellen?
class Foo{
public function createProperty($var_name, $val){
// here how can I create a property named "$var_name"
// that takes $val as value?
}
}
Und ich möchte in der Lage sein, auf die Immobilie zuzugreifen wie:
$object = new Foo();
$object->createProperty('hello', 'Hiiiiiiiiiiiiiiii');
echo $object->hello;
Ist es auch möglich, dass ich das Eigentum öffentlich / geschützt / privat machen könnte? Ich weiß, dass es in diesem Fall öffentlich sein sollte, aber ich möchte vielleicht einige magische Methoden hinzufügen, um geschützte Eigenschaften und Sachen zu erhalten :)
Ich glaube, ich habe eine Lösung gefunden:
protected $user_properties = array();
public function createProperty($var_name, $val){
$this->user_properties[$var_name] = $val;
}
public function __get($name){
if(isset($this->user_properties[$name])
return $this->user_properties[$name];
}
Denkst du, es ist eine gute Idee?