Autor | Zpráva | ||
---|---|---|---|
nethor Profil |
#1 · Zasláno: 6. 1. 2016, 18:26:10
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 |
#2 · Zasláno: 6. 1. 2016, 19:07:04
Á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 |
#4 · Zasláno: 7. 1. 2016, 12:18:20
nightfish:
Tím se podstatně zhorší přehlednost scriptu. |
||
anonymníí Profil * |
#5 · Zasláno: 7. 1. 2016, 12:28:04
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 |
#6 · Zasláno: 7. 1. 2016, 14:12:35
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 |
#7 · Zasláno: 7. 1. 2016, 14:19:54
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. |
||
Časová prodleva: 9 let
|
0