Autor Zpráva
_Leopik 2x
Profil *
Zdravim,
dá sa nejako docieliť to, aby som mohol ukladať data do premenných typu $obj->some->thing = "a"; bez toho, aby som uz predtym vytvoril $obj->some? Zatiaľ mám toto:
<?php
class MyClass {
    private $settedVals = array();

     public function __set($pName, $pValue) {
        $this->settedVals[$pName] = $pValue;
    }
    
     public function __get($pName) {
        return $this->settedVals[$pName];
    }
}

 $obj = new MyClass;

 $obj->title = "daco"; // 1
$obj->style->color = "blue"; // 2


 echo $obj->style->color;

 ?>
funguje to pre $obj->title, pre $obj->style->color už ale nie, je na to nejaké riešenie?
Ďakujem
Jan Tvrdík
Profil
<?php
class MyClass
{
    private $data = array();
    
     public function __get($name)
    {
        if (!isset($this->data[$name])) {
            $this->data[$name] = new stdClass();
        }
        
         return $this->data[$name];
    }
    
     public function __set($name, $value)
    {
        $this->data[$name] = $value;
    }
}
_Leopik 2x
Profil *
Funguje to presne tak, ako potrebujem, ďakujem :)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0