Autor | Zpráva | ||
---|---|---|---|
H13 Profil |
#1 · Zasláno: 18. 12. 2007, 16:35:55
Ahoj, zajímala by mě taková maličkost...
když rozebírám nějaký cizí php kód, např. nějakou třídu, ap., ve většině případů je styl kódu následovný: foreach ($array as $value){ if ($variable == 1){ echo "1"; } } Já (nejsem php programátor, ale pár řádků už jsem vytvořil) píšu kód následujícím způsobem foreach ($array as $value) { if ($variable == 1) { echo "1"; } } Mám větší přehled (např. když je vnořeno hodně podmínek, nějakej ten foreach, atd.., protože mi notepad zobrazí přesně zarovnaně začátek a konec kódu... Zajímalo by mě, zda kromě nějakého subjektivního pocitu, existuje důvod, proč zapisovat kód prvním způsobem (tipl bych, že ušetření dvou řádků to asi nebude) díky Honza |
||
Alphard Profil |
#2 · Zasláno: 18. 12. 2007, 16:47:50
ne, je to jedno, já např. používám ještě třetí způsob (ten je z praktického hlediska trochu nevýhodný, ale mně se líbí)
piš to jak chceš, bude to fungovat stejně pouze, pokud pracuješ v týmu, nebo očekáváš, že někdo bude předělávat tvé scripty, tak by asi bylo vhodné sjednotit to |
||
Dranel Profil |
#3 · Zasláno: 18. 12. 2007, 16:57:55
H13
Věř, že ty dva řádky v tom taky hrajou svou roli... |
||
BetaCam Profil |
#4 · Zasláno: 18. 12. 2007, 17:05:07 · Upravil/a: BetaCam
H13
Zajímalo by mě, zda kromě nějakého subjektivního pocitu, existuje důvod, proč zapisovat kód prvním způsobem. No nikdy sem na tím nepřemýšlel, ale nedovedu si představit zrovna u tohodle případu rozdíl mezi těmito zápisy. Osobně používám zápis druhý protože mi přijde přehlednější. Podle mě je to jen o tom na co si damý člověk zvykne. Žádný funkční rozdíl v tom není. Co se týče mě tak pokud otevřu cizí kód tak jedna z prvních věcí co udělám je, že si kód přeformátuju na syntaxi na kterou sem zvyklí. Zvyky programátorů sou různe. Spousty věcí se daj zapsat více způsoby. Několik příkladů, které běžne vidim a píšu je jinak: include ("foo.php"); já píši include 'foo.php'; ----------------------------------------- echo ("text"); já píši echo 'text'; ----------------------------------------- if ($abc == "") já píši if (empty($abc)) ----------------------------------------- if ($abc == "") { $xyz = TRUE; } else { $xyz = FALSE; } já píšu (empty($abc) ? $xyz = TRUE : $xyz = FALSE) ------------------------------------------ <head><title><?php echo $title;?></title></head> já píšu echo '<head><title>'.$title.'</title></head>'; ------------------------------------------ false já píšu FALSE příkladů je mnoho, ale podle mě jde ve většině případů pouze o návyk či zlozvyk člověka co píše kód. |
||
H13 Profil |
#5 · Zasláno: 18. 12. 2007, 17:13:37
Dranel
No to by mě celkem zajímalo, protože např. u takhle zapsaného kódu (první způsob) je kolikrát třeba 10 řádků komentářů (ovšem jestli parser komentáře nějak přeskakuje ???) BetaCam (empty($abc) ? $xyz = TRUE : $xyz = FALSE) No tomuto se snažím vyhnout, protože když je podmínka složitější na více řádků, pak přestávám mít přehledost s takovýmto zápisem ... |
||
BetaCam Profil |
#6 · Zasláno: 18. 12. 2007, 17:21:56
No tomuto se snažím vyhnout, protože když je podmínka složitější na více řádků, pak přestávám mít přehledost s takovýmto zápisem ...
Jistě pokud je podmínka složitá použiji klasický zápis. Existuje ovšem dost případů kdy je klasický zápis naopak nepřehlednější a přináší sebou jen chaos a naopak ternární operátor vnáší do kódu přehlednost. |
||
Str4wberry Profil |
#7 · Zasláno: 18. 12. 2007, 17:23:38
Odpovídám Honzovi:
Osobně bych uvedený kód zapsal takto: foreach ($array as $value){ if ($variable == 1) echo "1"; } „protože mi notepad zobrazí přesně“ Nebylo by lepší použít nějaký editor, který zvýrazňuje klíčová slova a názvy funkcí? Odpovídám BetaCam: if ($abc = "") já píši if (empty($abc)) |
||
BetaCam Profil |
#8 · Zasláno: 18. 12. 2007, 17:27:18 · Upravil/a: BetaCam
Odpovídám BetaCam:
if ($abc = "") já píši if (empty($abc)) Každé je ale přece něco úplně jiného. Uff sypu si popel na hlavu. :) Samozdřejmě if ($abc == "") já píši if (empty($abc)) |
||
Keilew Profil |
#9 · Zasláno: 18. 12. 2007, 17:34:34
První zápis je Javovský a já ho taky používám. Jsem na něj zvyklej.
|
||
H13 Profil |
#10 · Zasláno: 18. 12. 2007, 21:01:45
Str4wberry
foreach ($array as $value){ if ($variable == 1) echo "1"; } Ano, ale co když je podmínek 5, foreach ve foreach, podmínky mají else a else if , pak třeba i case, a celkem to má 300 řádků ... |
||
Timy Profil |
#11 · Zasláno: 18. 12. 2007, 21:13:14
Já používám druhý způsob, protože ty závorky pak lépe znázorňují celý blok, protože jsou akorát pod sebou. Je hned vidět, kde co končí a hlavně začíná. V prvním případě je každá závorka někde jinde, to se mi nelíbí.
|
||
b022d Profil * |
#12 · Zasláno: 18. 12. 2007, 21:27:38
Já používám první, jednak je ten druhý příliš roztahaný a hůř se mi čte, zvlášť když potřebuji komplexnější přehled a jeden menší úsek kódu se mi nevejde na stránku, jednak i druhý krásně odděluje bloky - začáteční písmeno a koncová složená závorka. Ale pravda, je to jen můj pohled.
Stejně - tohle je v pořádku, horší by bylo míchat to obojí dohromady. |
||
Měsíček Profil |
#13 · Zasláno: 18. 12. 2007, 21:27:54 · Upravil/a: Měsíček
Mě osobně se líbí mít "uhlazené zápisy" tj ..
Jsou : <? dávám raději : <?php ne každý má zapnutou direktivitu a už mnoho lidí na tom pohořelo .. místo : class Trida{ $string="String"; } mám radši : class Trida{ public $string = "String"; } ... |
||
b022d Profil * |
#14 · Zasláno: 18. 12. 2007, 21:28:18
*i první krásně odděluje bloky
|
||
Alphard Profil |
#15 · Zasláno: 18. 12. 2007, 21:33:53
protože pokud se nemýlím "echo" je funkce
není :-) |
||
BetaCam Profil |
#16 · Zasláno: 18. 12. 2007, 21:44:30
protože pokud se nemýlím "echo" je funkce
Opravdu se mýlíš jak říká Alphard echo je jazykový konstrukt. |
||
Měsíček Profil |
#17 · Zasláno: 19. 12. 2007, 08:08:13
To je vcelku zajímavé, protože každý tutorial a návod bere "echo" jako funkci, ale oficiální dokumentace php.net ne. Dobrá mažu ze svého příspěvku.
|
||
djlj Profil |
#18 · Zasláno: 19. 12. 2007, 12:40:48
Měsíček
Tutoriály taky kolikrát píše kdejaký packal :). A používám ten první zápis. |
||
Aleš Janda Profil |
#19 · Zasláno: 19. 12. 2007, 13:47:58
Osobně používám první zápis, ten druhý se mi zdá roztahaný, tudíž nepřehledný (na každém druhém řádku je jenom nějaká závorka), tudíž zápis byť krátkého kódu zabírá třeba celou stránku.
Osobně se mi líbí třeba syntaxe Pythonu, který složené závorky nepoužívá vůbec a bloky rozlišuje jen podle odsazení. A ještě příklad (empty($abc) ? $xyz = TRUE : $xyz = FALSE) se mi zdá také příliš roztahaný, spíše bych napsal $xyz = empty($abc); resp. $xyz = ($abc == ''); |
||
Keilew Profil |
#20 · Zasláno: 19. 12. 2007, 13:57:54
Aleš Janda
Ternární operátor se hodí při jiných příležitostech: echo "Vítej ".(($mod)?"Moderátore":"Uživateli"); |
||
Aleš Janda Profil |
#21 · Zasláno: 19. 12. 2007, 14:00:23
Keilew
Tak ho samozřejmě také používám :-) ale použít ho na výsledek true/false se mi zdá ve většině případů zbytečné. |
||
H13 Profil |
#22 · Zasláno: 19. 12. 2007, 14:29:36
Keilew
Aleš Janda pánové, váš kód bych rozhodně nechtěl analyzovat, leda, že bych si dodělal vyšší dívčí :-) |
||
daop Profil * |
#23 · Zasláno: 19. 12. 2007, 18:02:15
Dobry den,
ja pisu kod presne prvnim zpusobem, je to pro me prehlednejsi, Vim ze musim dat za IF slozene zavorky { a tak je tam dam, abych se nestratil v zavorkach, tak dusledne odsazuji kod.... Navic me v tom perfektne pomaha validator php pri psani kodu :), takze lahoda.... daop... |
||
BetaCam Profil |
#24 · Zasláno: 19. 12. 2007, 18:49:44
A ještě příklad
(empty($abc) ? $xyz = TRUE : $xyz = FALSE) se mi zdá také příliš roztahaný, spíše bych napsal Byl to pouze příklad. :) A popravdě v tu chvíly kdy sem to psal mě žádná jednoduší názorná podmínka nenapadla :) |
||
DoubleThink Profil * |
#25 · Zasláno: 19. 12. 2007, 18:57:03
Osobně se mi líbí třeba syntaxe Pythonu, který složené závorky nepoužívá vůbec a bloky rozlišuje jen podle odsazení.
Masochismus v té nečistší formě... |
||
Časová prodleva: 16 let
|
0