Autor | Zpráva | ||
---|---|---|---|
nethor Profil |
Proč nejde odkazovat na nově vytvořený objekt tímto způsobem?:
$td[] = new Td() ->addContent("obsah") ->Html(); $tmp = new Td(); $td[]= $tmp->addContent("obsah")->Html(); unset($tmp); ... nebo to nějak jde? |
||
Radek9 Profil |
#2 · Zasláno: 1. 12. 2012, 11:20:43
nethor:
Zabal to do závorek. |
||
Alphard Profil |
#3 · Zasláno: 1. 12. 2012, 11:41:53
nethor:
Nové verze PHP to umí. Ve starších se používaly různé workaroundy. Stejně jako přímý přístup ke konkrétnímu prvku, když funkce vrací pole... |
||
nethor Profil |
#4 · Zasláno: 1. 12. 2012, 12:10:29
Radek9:
To jsem zkoušel, $td[] = {new Td()} ->addContent("obsah") ->Html();
PHP 5.3.6 mi ale hlásí Parse error: syntax error, unexpected '{' ... Obyčejné ani hranaté taky neprojdou. Alphard: Tož se tedy časem dočkáme. Zatím hold použiju delší zápisy. Která verze PHP to už umi? |
||
Radek9 Profil |
nethor:
Složené i hranaté jsou blbost. Pokud nefungují kulaté, tak je to funkční až od PHP 5.4. Na 3.6 tedy asi půjde jen ten způsob přes proměnnou. Případně by možná mohlo fungovat tohle: function same($val) { return $val; } $td[] = same(new Td())->addContent("obsah")->html(); |
||
nethor Profil |
#6 · Zasláno: 1. 12. 2012, 13:20:44
Radek9:
Přes funkci to jde, dobrý nápad, díky. Složené závorky až taková blbost nejsou, lze s nimi řešit např: function Custom($idtr, $object){ ... return $this->Values[$idtr]->{$object->Alias} ; } ... hranaté jsem zkusil jen do počtu. |
||
Radek9 Profil |
#7 · Zasláno: 1. 12. 2012, 13:53:26
nethor:
Já netvrdím, že jsou nepoužitelné, ale jsou k něčemu úplně jinému. Použití v [#4] je logicky syntax error. Hranaté se používají pro zápis pole. |
||
Alphard Profil |
#8 · Zasláno: 1. 12. 2012, 14:04:32
V 5.4 se používají kulaté závorky, např.
echo (new DateTime())->format('Y-m-d H:i:s'); Obecně je dobré sledovat, co se v nových verzích mění. Protože se nejen přidává, ale u ubírá a mění vychozí nastavení. |
||
Časová prodleva: 11 let
|
0