POUZE NYNÍ: Získej až 80 % extra kreditů ZDARMA na náš interaktivní e-learning. Zjistit více.
NOVINKA: Staň se datovým analytikem od 0 Kč a získej jistotu práce, lepší plat a nové kariérní možnosti. Více informací:

Diskuze – Lekce 3 - Atributy a magické metody v PHP

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Nejnovější komentáře jsou na konci poslední stránky.
Avatar
Amomym
Člen
Avatar
Amomym:2.8.2013 18:25

Už se těším na pokračování :D, tento seriál tutoriálů je fakt perfektní :D

Avatar
Kit
Tvůrce
Avatar
Kit:2.8.2013 18:42

Destruktor v PHP slouží úplně k jinému účelu než v Javě nebo C# a dokonce na rozdíl od nich funguje. Zkus si spustit tenhle kód:

<?php
class Destr{
    function __construct($jmeno) {
        $this->jmeno = $jmeno;
        echo "Vytvářím objekt $this->jmeno\n";
    }

    function __destruct() {
        echo "Mažu objekt $this->jmeno\n";
    }

}

$obj = new Destr("Adam");
$obj = new Destr("Eva");
$obj = new Destr("Jana");
$obj = new Destr("Ivana");

Tohle je důvod, proč PHP nepotřebuje "finally".

Odpovědět
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Petr Nymsa
Tvůrce
Avatar
Petr Nymsa:2.8.2013 18:49

Pěkný článek :) Jen by mě zajímalo, kde přišli k názvu Magické metody :D

Odpovědět
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Petr Nymsa
Kit:2.8.2013 19:00

To je oficiální označení
http://php.net/…p5.magic.php
a některé jsou hodně užitečné, například v šablonách

Odpovědět
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Tvůrce
Avatar
Kit:2.8.2013 19:13

A ještě něco: Metoda __destruct() vůbec neříká nic o tom, že byl objekt odstraněn z paměti. Pouze se stane nedostupný. Fyzicky ho odstraní až GC, ale často skript skončí dřív, než se GC dostane ke slovu. Destruktory se však provedou vždy.

Odpovědět
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Neaktivní uživatel:2.8.2013 19:29

Velice kvalitní návod, jen bych ještě dodal self:: vedle $this.

Odpovědět
Neaktivní uživatelský účet
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
Kit:2.8.2013 19:34

self:: se většinou nepoužívá. Rozumní programátoři se mu vyhýbají.

Odpovědět
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Kit
Neaktivní uživatel:2.8.2013 19:58

Na to radši odpovídat nebudu, jinak se to zase zvrtne v boj o statiku.

Odpovědět
Neaktivní uživatelský účet
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
Kit:2.8.2013 20:04

Snad tě potěší, že v PHP 5.3 přibyla magická metoda __callStatic().

Odpovědět
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Kit
Neaktivní uživatel:2.8.2013 20:19

Moc výhod sice nevidím, ale uvítám každou novou možnost. Hlavně by se spíš měli zbavit funkcí typu mysql_, str_ a hlavně těch hrozně pojmenovaných funkcí a vytvořit na ně třídy, String::toLower().

Odpovědět
Neaktivní uživatelský účet
Nejnovější komentáře jsou na konci poslední stránky.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 85.