Autor Zpráva
nethor
Profil
Zdravím,
zajimalo by mě, jestli je v pořádku takováhle konstrukce funkce:
    function Check(){
        if(!$this->RuianDate)             return false;
        if(!$this->KodObce)                 return false;
        if(!is_file($this->LocalXml))     return false;
        return true        ;
    }    

Mám za to, že když funkce již vrátí výsledek, další podmínky se nevykonávají, takže komplikovat zápis 'else' je zbytečné.
Co Vy na to?
xROAL
Profil
Áno, return ukončuje beh funkcie, takže ak je prvá podmienka splnená, zvyšné sa kontrolovať nebudú.
nightfish
Profil
Podmínka se dá taky zapsat takto bez IFů:
return ($this->RuianDate && $this->KodObce && is_file($this->LocalXml));
nethor
Profil
nightfish:
Tím se podstatně zhorší přehlednost scriptu.
anonymníí
Profil *
nethor:
Přehlednost scriptu je relativní. Pokud chceš IF, který ti bude možná pochopitelnější, můžeš je sloučit, třeba, do jednoho.

if (!$this->RuianDate || !$this->KodObce || !is_file($this->LocalXml)) return false;
return true;

Pomíjím, že není best practise psát podmínky, byť s jednořádkovým tělem, bez ovozovek, atp. Na přehlednost kódu tolik nedbáš, spíše jako nepřehledné označuješ konstrukce, které neznáš :-)
nethor
Profil
anonymníí:
Takový zápis je úplně nesmyslná komplikace, která zápis znepřehledňuje ještě víc.
podmínky, byť s jednořádkovým tělem, bez ovozovek,
Jestli myslíš uvozovky , tak ty tam žádné nepatří.

V původním dotazu mi šlo o chování return , který může složitější konstrukce výrazně zpřehlednit:
    function Katastry(){    
        if(!$this->Check())      return false;
         $this->SerialStore = new SerialStore("Katastry")    ;
         $this->SerialStore->Way($this->RuianDate)                ;    
        if($this->SerialStore->IsFile($this->KodObce))         return true    ;    
        $this->SaveKatastry()    ;
        return $this->SerialStore->IsFile()    ;
     }

.. a na to odpověděl už xROAL .
aDAm
Profil
no nechcu do toho kecat, ale toto mi zrovna dvakrát přehledné nepříjde.
anonymnii
Profil *
Myslel jsem závorky, ne uvozovky, pochopitelně. Kdo chce pochopit, pochopí, druhy si aspon rypne.

Nevidím v tvém kódu zadnou snahu u dodržení nějakého coding standardu, nebo je divný. Ale moznosti naznačene mas, vyber si, co je libo. Kazdemu je přehledné něco jiného.


A jen tak na okraj, kód, který jsem uvedl, nepoužívám, je to jen alternativa.

V praxi bych se nebál užít kód od nightfishe, nic nepřehledneho v něm neshledávám.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0