Autor Zpráva
Soleto
Profil *
Ahoj, neporadi nekdo proc mi tohle nefunguje? :-( Děkuji
class map{
          var $pdo;
          public function __construct($pdo){
                    $this->pdo = $pdo;
          }

         public function __toString(){
                    ...
                    # Tady zjistim jaký class zavolám
                    ...

                   # Zavolám zvolenou class a vratim vysledek
                    return new index($this->pdo);
          }
}

class index{

         var $pdo;
          public function __construct($pdo){
                    $this->pdo = $pdo;
          }

         public function __toString(){
                    ...
                    # Tady zjistim jaký class zavolám
                    ...

                   # Zavolám zvolenou class a vratim vysledek
                    return new news($this->pdo);
          }
}

class news{
          var $pdo;
          public function __construct($pdo){
                    $this->pdo = $pdo;
          }

         public function __toString(){

                   # Už řádnou class nevolam, vrátím jen vysledek
                    return $pdo->query(.....); // Ahoj
          }
}

$map = new map($pdo);
echo $map; // Ahoj

Moderátor Alphard: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ).
Tori
Profil
echo $map; - tady voláte metodu map::__toString(), která vrací instanci třídy index (nikoli řetězec). Co se týká řádku return $pdo->query(.....);: pokud v proměnné $pdo je instance PDO, tak tenhle řádek taky nevrátí řetězec, ale instanci PDOStatement.

K čemu to celé má sloužit?
Soleto
Profil *
to:Tori
Ahoj, slouží to k načítání stránek podle zadané url, jedná se ale o to, že data jsou až v té třetí class v tomto případě news(); Ten return jsem špatně napsal, není na PDO ale přímo na $row[$foo]; Potřebuji vypsat data pomocí echa z třetí class a přitom do třetí class přenést parametr $pdo. Prostě není možnost, zkoušel jsem snad už všechno.. :(

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: