Portál AbcLinuxu, 12. května 2025 06:40
$foo = new foo();a tu proměnnou $foo až nějak převést na string? Díky
Řešení dotazu:
__toString()
, která nemá parametry, ale vrací string. Pak už jen stačí použít objekt tam, kde je očekáván string.
$foo = new Foo(); echo $foo;nebo zkráceně
echo new Foo();
class map { var $foo; function __construct($foo) { $this->foo = $foo; } public function __toString() { return new $this->foo(); } } new map('add_class');
__toString()
je prezentační a její return prostě musí vracet string.
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
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.