Portál AbcLinuxu, 8. listopadu 2025 05:24
$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.