jak přepsat __get() třídy \Nette\Object?

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
tomaass
Člen | 74
+
0
-

Ahoj,

mám třídu ‚package‘, která dědí od nette\object.

class Package extends \Nette\Object{
    /** @var Nette\Database\Table\ActiveRow */
    private  $package;

    ...

    public function __get($name){
        return $this->package->$name;
    }
}

Toto hodí chybu

Strict

Declaration of Package::__get() should be compatible with that of Nette\Object::__get()

Když doplním &:

public function &__get($name){
    return $this->package->$name;
}

chyba bude:

Notice

Only variable references should be returned by reference

Co dělám špatně, když chci vrátit proměnnou objektu $package?

natrim
Člen | 73
+
0
-
<?php
class Package extends \Nette\Object{
    /** @var Nette\Database\Table\ActiveRow */
    private  $package;

    ...

    public function &__get($name){
        $package = $this->package->$name;
        return $package;
    }
}
?>

Editoval natrim (3. 12. 2012 12:35)

tomaass
Člen | 74
+
0
-

děkuju