potrzebuję, żeby moja statyczna metoda zwracała referencję do statycznego atrybutu, który jest tablicą, a konkretnie elementu tablicy, który znowu jest obiektem innej klasy. Obiekt ten chcę usunąć, wywołując destruktor. Tyle wstępu, teraz trochę kodu:
<?php class wykobot { } foreach (self::$channels as &$channel) { if ($channel['name']==$name) { return $channel['obj']; } } return false; } } class channel { public function __destruct() { } } wykobot::zmyslona_funckja(); $ch = &wykobot::getChannelByName('wtest'); // element tablicy jest zwrócony, ale nie jako referencja ?>
Niby obiekty zwracane są zawsze jako referencje, ale w wersji bez "&" też nie podziała, dlatego na próbę dopisałem.
Wiem też, że nie przeszadza to, że atrybut wykobot::$channels jest prywatny, ma tak działać.
Jeżeli w wykobot::getChannelByName przed returnem wstawimy unset($channel['obj']) to podziała jak trzeba, tj jedyny output jaki dostaniemy to "destruktor!".