abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
včera 23:45 | Zajímavý software

Na blogu Qt bylo představeno Qt 3D Studio. Jedná se o produkt dosud známý pod názvem NVIDIA DRIVE™ Design Studio. NVIDIA jej věnovala Qt. Jedná se o několik set tisíc řádků zdrojového kódu. Qt 3D Studio bude stejně jako Qt k dispozici jak pod open source, tak pod komerční licencí. Ukázka práce s Qt 3D Studiem na YouTube.

Ladislav Hagara | Komentářů: 1
včera 17:50 | Komunita

Nadace The Document Foundation (TDF) zastřešující vývoj svobodného kancelářského balíku LibreOffice slaví 5 let od svého oficiálního vzniku. Nadace byla představena 28. září 2010. Formálně byla založena ale až 17. února 2012.

Ladislav Hagara | Komentářů: 0
včera 12:50 | Komunita

Mozilla.cz informuje, že dosud experimentální funkce Page Shot z programu Firefox Test Pilot (zprávička) se stane součástí Firefoxu. Page Shot je nástroj pro vytváření snímků webových stránek. Umí výběr oblasti, prvku stránky (např. odstavce), nebo uložení snímku celé stránky. Snímky lze ukládat na disk nebo nahrávat na server Mozilly. Nedávno bylo oznámeno, že se součástí Firefoxu stane Activity Stream.

Ladislav Hagara | Komentářů: 21
včera 04:10 | Nová verze

Po 10 týdnech vývoje od vydání Linuxu 4.9 (zprávička) oznámil Linus Torvalds, mj. již 20 let žijící v USA, vydání Linuxu 4.10 (LKML). Přehled nových vlastností a vylepšení například na Kernel Newbies a v Jaderných novinách (1, 2 a 3). Kódové jméno Linuxu 4.10 je Fearless Coyote.

Ladislav Hagara | Komentářů: 6
19.2. 15:55 | Zajímavý projekt

Vyzkoušet si příkazy a vyřešit několik úkolů lze na stránkách Commandline Challenge (CMD Challenge). Úkoly lze řešit různými způsoby, důležitý je výsledek. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.

Ladislav Hagara | Komentářů: 18
18.2. 17:35 | Bezpečnostní upozornění

Německá Bundesnetzagentur (obdoba českého ČTU) zakázala na německém území prodej panenky Cayla kvůli „špionáži“ dětí. Tato elektronická hračka obsahuje mikrofon, reproduktor a kameru a bezdrátové komunikační rozhraní, pomocí kterého se hračka připojuje na servery výrobce. Takovýmto způsobem může hračka pomocí umělé inteligence „odpovídat“ na dotazy dítěte. Hlavní problém bude ale asi někde jinde, podle prvotních zpráv může

… více »
Petr Tomášek | Komentářů: 32
17.2. 15:30 | Bezpečnostní upozornění

CSIRT.CZ upozorňuje, že bezpečnostní experti objevili nový typ malwaru, jenž cílí na open source e-commerce platformu Magento. Malware je zajímavý tím, že se jedná o první svého druhu, jehož kód zůstává skrytý v SQL databázi zasaženého e-shopu. Škodlivý kód je volán pomocí tzv. SQL trigerru, který je spouštěn při každém vytvoření objednávky v systému.

Ladislav Hagara | Komentářů: 3
17.2. 09:00 | Nová verze

Bylo vydáno Ubuntu 16.04.2 LTS, tj. druhé opravné vydání Ubuntu 16.04 LTS s kódovým názvem Xenial Xerus. Přehled novinek v poznámkách k vydání a v přehledu změn.

Ladislav Hagara | Komentářů: 59
17.2. 06:00 | Zajímavý článek

Pavel Tišnovský se v dvoudílném článku na MojeFedora.cz věnuje tvorbě pluginů (modulů) pro bitmapový grafický editor GIMP. Pomocí pluginů lze GIMP rozšiřovat o další funkce. Implementovat lze například nové filtry nebo pomocné utility pro tvorbu animací či poloautomatickou retuš snímků.

Ladislav Hagara | Komentářů: 6
16.2. 23:32 | Komunita

Do 30. března se lze přihlásit do dalšího kola programu Outreachy, jehož cílem je přitáhnout do světa svobodného a otevřeného softwaru lidi ze skupin, jež jsou ve světě svobodného a otevřeného softwaru málo zastoupeny. Za 3 měsíce práce, od 30. května do 30. srpna 2017, v participujících organizacích lze vydělat 5 500 USD. Jedná se již o 14. kolo tohoto programu.

Ladislav Hagara | Komentářů: 11
Jak se stavíte k trendu ztenčování přenosných zařízení (smartphony, notebooky)?
 (13%)
 (2%)
 (72%)
 (3%)
 (10%)
Celkem 671 hlasů
 Komentářů: 54, poslední dnes 07:38
Rozcestník
Reklama

Dotaz: Problém s vrácením dat z class v php

22.11.2013 00:54 David
Problém s vrácením dat z class v php
Přečteno: 768×
Ahoj. Chtěl bych se zeptat, když v metodě uvnitř třídy "class1" mám return new class2(), a class2() mi vrací data pomocí __toString(), tak vše funguje, jenže pokud potřebuji jít dál, a uvnitř class2() dám return new class3() tak přesto že vracím zase v class3() data pomocí __toString(), do class1 se už nedostanou. Poradí někdo?

Odpovědi

22.11.2013 05:47 Kit | skóre: 37 | Brno
Rozbalit Rozbalit vše Re: Problém s vrácením dat z class v php
Stačí s tím objektem zacházet jako se stringem, například zřetězit s prázdným stringem.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Tarmaq avatar 22.11.2013 09:26 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: Problém s vrácením dat z class v php
Anebo pouzit strval(). Vysledek by mel vypadat nejak takhle:
class class2
{
  private $foo;
  function __construct()
  {
    $this->foo = new class3;
  }
  function __toString()
  {
    return strval($this->foo);
  }
}
Don't panic!
22.11.2013 09:55 David
Rozbalit Rozbalit vše Re: Problém s vrácením dat z class v php
Zrovna tady jsem se dočetl, že tvé řešení není "správné". Metoda __toString() nemá vracet proměnné ale má volat metody :-( A řádek private $foo; tam taky nemá být... Tak jak to tedy opravdu je?

PS: Jak amatér s rozbitou držkou domů se vrátil, když učil orla létat :-D
22.11.2013 10:20 Kit
Rozbalit Rozbalit vše Re: Problém s vrácením dat z class v php
Četl jsi to ze špatného zdroje a navíc jsi to i špatně pochopil.
22.11.2013 10:24 David
Rozbalit Rozbalit vše Re: Problém s vrácením dat z class v php
No na 99% jsi to psal ty, nemůžu to teď najít..
Tarmaq avatar 22.11.2013 10:26 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: Problém s vrácením dat z class v php
tusim ze mas na mysli tohle, je to tak?
Don't panic!
22.11.2013 12:09 David
Rozbalit Rozbalit vše Re: Problém s vrácením dat z class v php
tusim ze mas na mysli tohle, je to tak?
Ano, tam jsem to četl...
Tarmaq avatar 22.11.2013 12:16 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: Problém s vrácením dat z class v php
A muzes tedy citovat? Nebo zkopirovat Link daneho prispevku a vlozit ho sem?
Don't panic!
22.11.2013 12:26 David
Rozbalit Rozbalit vše Re: Problém s vrácením dat z class v php
Sorry to není ono, ale to jsem taky četl, bylo tam něco ve smyslu, že proměnné v class nejsou uložiště a tak by měli vracet přímo výsledek a být volány až když jsou potřeba. A ty proměnné když nejsou definovány tak se tam nepíšou. Ale četl jsem toho hodně a nevím kde to bylo a mimo jiné tohle mi uvízlo v hlavě...
22.11.2013 12:50 Kit
Rozbalit Rozbalit vše Re: Problém s vrácením dat z class v php
Zdá se, že jsi tu větu vytrhl z kontextu. Zřejmě jsem někde psal o anemickém doménovém modelu, který z objektu dělá úložiště. Možná jsi to zkombinoval s jiným mým výrokem o normalizaci třídy, že její instanční proměnné by neměly být konglomeráty, ale atomické hodnoty, které se v metodě __toString() teprve spojí do požadovaného výstupu.
Josef Kufner avatar 22.11.2013 12:02 Josef Kufner | skóre: 66
Rozbalit Rozbalit vše Re: Problém s vrácením dat z class v php
__toString vrací vždy obyčejný string. Jak k němu dojde, je celkem jedno, jen by ta metoda neměla mít žádné side effecty, tedy jedno zavolání a libovolný počet zavolání musí vyjít nastejno.

Ten kousek kódu je dobře, jen by místo strval bylo lepší použít přetypování na string: return (string) $this->foo;
Hello world ! Segmentation fault (core dumped)
Tarmaq avatar 22.11.2013 12:18 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: Problém s vrácením dat z class v php
Ten kousek kódu je dobře, jen by místo strval bylo lepší použít přetypování na string: return (string) $this->foo;
Mohl bys prosim nejak podlozit, v cem je to lepsi? IMHO obe veci delaji uplne tu samou vec. Spis je to o osobnich preferencich.
Don't panic!
Josef Kufner avatar 22.11.2013 12:29 Josef Kufner | skóre: 66
Rozbalit Rozbalit vše Re: Problém s vrácením dat z class v php
Rozdíl je v rychlosti. Přetypování ušetří volání funkce a výsledek je přitom zcela stejný. Pokud by to bylo v nějaké často používané funkci, což docela často bývá případ různých pomocných formátovacích udělátek, může to zvednout výkon aplikace o pár procent.
Hello world ! Segmentation fault (core dumped)
Tarmaq avatar 22.11.2013 12:30 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: Problém s vrácením dat z class v php
Vlastne existuje duvod pro pouziti strval() misto (string). Je hned na prvni pohled jasne, co je castovano a clovek tak nemusi resit napr. precedenci operatoru..
Don't panic!
Josef Kufner avatar 22.11.2013 12:34 Josef Kufner | skóre: 66
Rozbalit Rozbalit vše Re: Problém s vrácením dat z class v php
Důvod, proč strval existuje, je funkce array_map a jí podobné.

"strval(blabla)" a "(string)(blabla)" vyjde z pohledu čitelnosti i náročnosti psaní úplně na stejno.
Hello world ! Segmentation fault (core dumped)
22.11.2013 12:52 potato
Rozbalit Rozbalit vše Re: Problém s vrácením dat z class v php
Z pohledu čitelnosti je zápis jako volání funkce určitě lepší. Je v kódu
(a)(b)(c)
- a i b typ, c proměnná

- a typ, b funkce, c proměnná

- a funkce vracející funkci, b funkce, c proměnná

nebo je to ještě nějak jinak?
22.11.2013 15:22 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Problém s vrácením dat z class v php

Ej, to je extrém pomíjející fakt, že máme máme nějaké základní typy, klíčová slova apod. a že uživatelské typy také pojmenováváme dle nějakých zásad.

Osobně klasické přetypování ve stylu 'C' je pro mně to nejčitelnější (, co přesně dělá interpret PHP u jednotlivých zápisů nevím).

To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
Josef Kufner avatar 22.11.2013 17:08 Josef Kufner | skóre: 66
Rozbalit Rozbalit vše Re: Problém s vrácením dat z class v php
Před proměnné se píše dolar, takže to je trošku jednodušší. Navíc podpora anonymních funkcí v PHP je taková trošku polovičatá, takže si s tímhle neporadí ani samotný interpret. Tenhle zápis je jedině trojité přetypování (PHP 5.3 a starší, jaké novinky jsou v PHP 5.5 jsem nezkoumal moc podrobně, ale prý se to trochu zlepšilo).
Hello world ! Segmentation fault (core dumped)

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.