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í
×
eParkomat, startup z ČR, postoupil mezi finalisty evropského akcelerátoru ChallengeUp!
Robot na pivo mu otevřel dveře k opravdovému byznysu
Internet věcí: Propojený svět? Už se to blíží...
dnes 13:42 | Pozvánky

V Praze probíhá konference Internet a Technologie 16.2, volné pokračování jarní konference sdružení CZ.NIC. Konferenci lze sledovat online na YouTube. K dispozici je také archiv předchozích konferencí.

Ladislav Hagara | Komentářů: 0
včera 22:44 | Komunita

Joinup informuje, že Mnichov používá open source groupware Kolab. V srpnu byl dokončen dvouletý přechod na toto řešení. V provozu je asi 60 000 poštovních schránek. Nejenom Kolabu se věnoval Georg Greve ve své přednášce Open Source: the future for the European institutions (SlideShare) na konferenci DIGITEC 2016, jež proběhla v úterý 29. listopadu v Bruselu. Videozáznam přednášek z hlavního sálu je ke zhlédnutí na Livestreamu.

Ladislav Hagara | Komentářů: 7
včera 15:30 | Zajímavý projekt

Společnost Jolla oznámila v příspěvku Case study: Sailfish Watch na svém blogu, že naportovala Sailfish OS na chytré hodinky. Využila a inspirovala se otevřeným operačním systémem pro chytré hodinky AsteroidOS. Použita je knihovna libhybris. Ukázka ovládání hodinek na YouTube.

Ladislav Hagara | Komentářů: 7
včera 14:15 | Nová verze

Byla vydána verze 7.1.0 skriptovacího jazyka PHP používaného zejména k vývoji dynamických webových stránek. Jedná se o první stabilní verzi nejnovější větvě 7.1. Přehled novinek v dokumentaci. Podrobnosti v ChangeLogu. K dispozici je také příručka pro přechod z PHP 7.0.x na PHP 7.1.x.

Ladislav Hagara | Komentářů: 1
včera 12:55 | Nová verze

Google Chrome 55 byl prohlášen za stabilní. Nejnovější stabilní verze 55.0.2883.75 tohoto webového prohlížeče přináší řadu oprav a vylepšení (YouTube). Opraveno bylo také 36 bezpečnostních chyb. Mariusz Mlynski si například vydělal 22 500 dolarů za 3 nahlášené chyby (Universal XSS in Blink).

Ladislav Hagara | Komentářů: 4
včera 11:55 | Pozvánky

Máte rádi svobodný software a hardware nebo se o nich chcete něco dozvědět? Přijďte na 135. sraz spolku OpenAlt, který se bude konat ve čtvrtek 8. prosince od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5). Sraz bude tentokrát tématický. Bude retro! K vidění budou přístroje jako Psion 5mx nebo Palm Z22. Ze svobodného hardwaru pak Openmoko nebo čtečka WikiReader. Přijďte se i vy pochlubit svými legendami, nebo alespoň na pivo. Moderní hardware má vstup samozřejmě také povolen.

xkucf03 | Komentářů: 0
včera 00:10 | Nová verze

Byla vydána verze 3.2 svobodného systému pro detekci a prevenci průniků a monitorování bezpečnosti počítačových sítí Suricata. Z novinek lze zmínit například podporu protokolů DNP3 a CIP/ENIP, vylepšenou podporu TLS a samozřejmě také aktualizovanou dokumentaci.

Ladislav Hagara | Komentářů: 0
1.12. 21:00 | Nová verze

Byla vydána beta verze Linux Mintu 18.1 s kódovým jménem Serena. Na blogu Linux Mintu jsou hned dvě oznámení. První o vydání Linux Mintu s prostředím MATE a druhé o vydání Linux Mintu s prostředím Cinnamon. Stejným způsobem jsou rozděleny také poznámky k vydání (MATE, Cinnamon) a přehled novinek s náhledy (MATE, Cinnamon). Linux Mint 18.1 bude podporován až do roku 2021.

Ladislav Hagara | Komentářů: 0
1.12. 16:42 | Nová verze

Byl vydán Devuan Jessie 1.0 Beta 2. Jedná se o druhou beta verzi forku Debianu bez systemd představeného v listopadu 2014 (zprávička). První beta verze byla vydána v dubnu letošního roku (zprávička). Jedna z posledních přednášek věnovaných Devuanu proběhla v listopadu na konferenci FSCONS 2016 (YouTube, pdf).

Ladislav Hagara | Komentářů: 0
1.12. 15:16 | Komunita

Na GOG.com začal zimní výprodej. Řada zlevněných her běží oficiálně také na Linuxu. Hru Neverwinter Nights Diamond lze dva dny získat zdarma. Hra dle stránek GOG.com na Linuxu neběží. Pomocí návodu ji lze ale rozběhnout také na Linuxu [Gaming On Linux].

Ladislav Hagara | Komentářů: 1
Kolik máte dat ve svém domovském adresáři na svém primárním osobním počítači?
 (32%)
 (24%)
 (29%)
 (7%)
 (5%)
 (3%)
Celkem 763 hlasů
 Komentářů: 50, poslední 29.11. 15:50
Rozcestník
Reklama

Dotaz: PHP - Class a jejich rozšíření

26.3.2014 16:50 Jakubysko
PHP - Class a jejich rozšíření
Přečteno: 208×
Ahoj, mám tady pro ukízku nějaké třídy, ale nedokážu je propojit tak, abych se dostal ze všech tříd na metody ve třídě "Vybava". Neporadí někdo? Děkuji
     class Vybava {
          public function automat() {
               return 'Ano';
          }
     }

     class Automobilky extends Vybava {
          public function __construct(){
               $this->obj = new Skoda();
          }
     }

     class Skoda extends Vybava {
          public function __construct(){
               echo $this->automat(); //Ano
          }
     }


     class Bmw extends Vybava {
          public function __construct(){
               echo $this->automat(); //Ano
          }
     }

Odpovědi

26.3.2014 17:36 Lucius
Rozbalit Rozbalit vše Re: PHP - Class a jejich rozšíření
Mozna presne nerozumim dotazu, ale pokud chcete zavolat metodu automat() tridy Vybava treba ze tridy Skoda tak byste mel pouzit
parent::automat();
26.3.2014 17:55 Jakubysko
Rozbalit Rozbalit vše Re: PHP - Class a jejich rozšíření
Díky moc, sice to funguje ale (bez uražky) je ten zápis fakt správně? Proč se volá jako statická class? A kdyby byla ta třída taková, + s konstruktorem + nadefinovanou proměnnou? Budu volat tu proměnnou třeba z class Skoda "parent::db" ? Díky
class Vybava {

     protected $db

     public function __construct(){
          $this->db = new PDO(...);
     }

     public function automat() {
          return 'Ano';
     }
}
26.3.2014 18:08 Lucius
Rozbalit Rozbalit vše Re: PHP - Class a jejich rozšíření
Spravne to je, jen nevim jestli je to to co hledas ty. :-)

:: - je operator a pristupuje se pres nej nejen ke static ale i ke konstatntam a overridden vlastnostem a metodam

v tomto vasem prikladu byste z konstruktoru dedicne tridy musel volat
parent::__construct();
pokud byste chtel pouzit
  public function __construct(){
          $this->db = new PDO(...);
   }
pokud byste v dedicne tride nevytvoril konstruktor tak se pouzije ten rodice a nemusel byste ho volat pres parent ...
26.3.2014 18:35 Jakubysko
Rozbalit Rozbalit vše Re: PHP - Class a jejich rozšíření
:: - je operator a pristupuje se pres nej nejen ke static ale i ke konstatntam a overridden vlastnostem a metodam
Hm, já myslel, že se metody volají jen "$this->nejakaMetoda()". A tu proměnnou zavlám jak? Rozdíl mezi $this->nejakaMetoda() a parent::nejakaMetoda() je prosím jaký? Díky moc.
27.3.2014 11:48 Lucius
Rozbalit Rozbalit vše Re: PHP - Class a jejich rozšíření
parent::nejakaMetoda() - zavolate metodu nejakaMetoda() predka

$this->nejakaMetoda() - zavolate metodu nejakaMetoda() potomka, resp. v aktualni instanci vsak si to zkuste
class A {
	  public function nejakaMetoda(){
			echo 'A';		
      }

}

class B extends A {
	  public function nejakaMetoda(){	  
			echo 'B';		
      }	  
	  public function test(){	  
			parent::nejakaMetoda();			
			$this->nejakaMetoda();
      }
}

$tmp = new B();
$tmp->test();
26.3.2014 18:20 Sten
Rozbalit Rozbalit vše Re: PHP - Class a jejich rozšíření
Ano, je to správně a nevolá se to jako statická metoda. Místo parent můžete použít i přímo jméno té třídy. Proměnnou tak odkazovat nelze.
26.3.2014 18:38 Jakubysko
Rozbalit Rozbalit vše Re: PHP - Class a jejich rozšíření
Místo parent můžete použít i přímo jméno té třídy.
Děkuji, tak že je jedno jestli to zavolám parent::myMetoda() nebo Vybava::myMetoda(), chápu to správně, jo?
Proměnnou tak odkazovat nelze.
Pokud proměnnou takto volat nelze, tak to znamená, že se volá klasicky $this->db, ano? Díky
Tarmaq avatar 26.3.2014 18:51 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: PHP - Class a jejich rozšíření
kdyz odhlednu od problemu ktery resis, jaky ma smysl aby trida Automobilky dedila tridu Vybava. Moc mi to nedava smysl.
Don't panic!
27.3.2014 14:49 Kit | skóre: 36 | Brno
Rozbalit Rozbalit vše Re: PHP - Class a jejich rozšíření
Souhlasím. Automobilka přece není Vybava. Dokonce ani Skoda či Bmw není speciálním případem třídy Vybava. Je to úplně špatně navrženo.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
27.3.2014 16:05 Kozzi11
Rozbalit Rozbalit vše Re: PHP - Class a jejich rozšíření
JJ presne tak, v tomto pripade si autor spletl vztah "je" se vztahem "ma", takze misto dedicnosti by mel pouzit kompozici.
28.3.2014 01:45 Prussian
Rozbalit Rozbalit vše Re: PHP - Class a jejich rozšíření
Ta hierarchia je (pri objektovom modeli aky ma PHP) uplne nahovno. Pri viacnasobnej by mohla davat aky taky zmysel keby tireda dedila aj od inych tried.

Na nehierarchicke rozsirovanie objektov sa pouzivaju skor mixiny, traity, alebo monkey patching.

Bmw nemoze byt potomkom vybavy - ved to je smiesne... Bmw moze byt trebars potomkom auta, alebo potomkom dopravneho prostriedku, ale vybava je sucastou auta v tomto pripade treba namiesto dedicnosti pouzit kompoziciu.

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.