PNG  IHDRX cHRMz&u0`:pQ<bKGD pHYsodtIME MeqIDATxw]Wug^Qd˶ 6`!N:!@xI~)%7%@Bh&`lnjVF29gΨ4E$|>cɚ{gk= %,a KX%,a KX%,a KX%,a KX%,a KX%,a KX%, b` ǟzeאfp]<!SJmɤY޲ڿ,%c ~ع9VH.!Ͳz&QynֺTkRR.BLHi٪:l;@(!MԴ=žI,:o&N'Kù\vRmJ雵֫AWic H@" !: Cé||]k-Ha oݜ:y F())u]aG7*JV@J415p=sZH!=!DRʯvɱh~V\}v/GKY$n]"X"}t@ xS76^[bw4dsce)2dU0 CkMa-U5tvLƀ~mlMwfGE/-]7XAƟ`׮g ewxwC4\[~7@O-Q( a*XGƒ{ ՟}$_y3tĐƤatgvێi|K=uVyrŲlLӪuܿzwk$m87k( `múcE)"@rK( z4$D; 2kW=Xb$V[Ru819קR~qloѱDyįݎ*mxw]y5e4K@ЃI0A D@"BDk_)N\8͜9dz"fK0zɿvM /.:2O{ Nb=M=7>??Zuo32 DLD@D| &+֎C #B8ַ`bOb $D#ͮҪtx]%`ES`Ru[=¾!@Od37LJ0!OIR4m]GZRJu$‡c=%~s@6SKy?CeIh:[vR@Lh | (BhAMy=݃  G"'wzn޺~8ԽSh ~T*A:xR[ܹ?X[uKL_=fDȊ؂p0}7=D$Ekq!/t.*2ʼnDbŞ}DijYaȲ(""6HA;:LzxQ‘(SQQ}*PL*fc\s `/d'QXW, e`#kPGZuŞuO{{wm[&NBTiiI0bukcA9<4@SӊH*؎4U/'2U5.(9JuDfrޱtycU%j(:RUbArLֺN)udA':uGQN"-"Is.*+k@ `Ojs@yU/ H:l;@yyTn}_yw!VkRJ4P)~y#)r,D =ě"Q]ci'%HI4ZL0"MJy 8A{ aN<8D"1#IJi >XjX֔#@>-{vN!8tRݻ^)N_╗FJEk]CT՟ YP:_|H1@ CBk]yKYp|og?*dGvzنzӴzjֺNkC~AbZƷ`.H)=!QͷVTT(| u78y֮}|[8-Vjp%2JPk[}ԉaH8Wpqhwr:vWª<}l77_~{s۴V+RCģ%WRZ\AqHifɤL36: #F:p]Bq/z{0CU6ݳEv_^k7'>sq*+kH%a`0ԣisqにtү04gVgW΂iJiS'3w.w}l6MC2uԯ|>JF5`fV5m`Y**Db1FKNttu]4ccsQNnex/87+}xaUW9y>ͯ骵G{䩓Գ3+vU}~jJ.NFRD7<aJDB1#ҳgSb,+CS?/ VG J?|?,2#M9}B)MiE+G`-wo߫V`fio(}S^4e~V4bHOYb"b#E)dda:'?}׮4繏`{7Z"uny-?ǹ;0MKx{:_pÚmFמ:F " .LFQLG)Q8qN q¯¯3wOvxDb\. BKD9_NN &L:4D{mm o^tֽ:q!ƥ}K+<"m78N< ywsard5+вz~mnG)=}lYݧNj'QJS{S :UYS-952?&O-:W}(!6Mk4+>A>j+i|<<|;ر^߉=HE|V#F)Emm#}/"y GII웻Jі94+v뾧xu~5C95~ūH>c@덉pʃ1/4-A2G%7>m;–Y,cyyaln" ?ƻ!ʪ<{~h~i y.zZB̃/,雋SiC/JFMmBH&&FAbϓO^tubbb_hZ{_QZ-sύodFgO(6]TJA˯#`۶ɟ( %$&+V'~hiYy>922 Wp74Zkq+Ovn錄c>8~GqܲcWꂎz@"1A.}T)uiW4="jJ2W7mU/N0gcqܗOO}?9/wìXžΏ0 >֩(V^Rh32!Hj5`;O28؇2#ݕf3 ?sJd8NJ@7O0 b־?lldщ̡&|9C.8RTWwxWy46ah嘦mh٤&l zCy!PY?: CJyв]dm4ǜҐR޻RլhX{FƯanшQI@x' ao(kUUuxW_Ñ줮[w8 FRJ(8˼)_mQ _!RJhm=!cVmm ?sFOnll6Qk}alY}; "baӌ~M0w,Ggw2W:G/k2%R,_=u`WU R.9T"v,<\Ik޽/2110Ӿxc0gyC&Ny޽JҢrV6N ``یeA16"J³+Rj*;BϜkZPJaÍ<Jyw:NP8/D$ 011z֊Ⱳ3ι֘k1V_"h!JPIΣ'ɜ* aEAd:ݺ>y<}Lp&PlRfTb1]o .2EW\ͮ]38؋rTJsǏP@芎sF\> P^+dYJLbJ C-xϐn> ι$nj,;Ǖa FU *择|h ~izť3ᤓ`K'-f tL7JK+vf2)V'-sFuB4i+m+@My=O҈0"|Yxoj,3]:cо3 $#uŘ%Y"y죯LebqtҢVzq¼X)~>4L׶m~[1_k?kxֺQ`\ |ٛY4Ѯr!)N9{56(iNq}O()Em]=F&u?$HypWUeB\k]JɩSع9 Zqg4ZĊo oMcjZBU]B\TUd34ݝ~:7ڶSUsB0Z3srx 7`:5xcx !qZA!;%͚7&P H<WL!džOb5kF)xor^aujƍ7 Ǡ8/p^(L>ὴ-B,{ۇWzֺ^k]3\EE@7>lYBȝR.oHnXO/}sB|.i@ɥDB4tcm,@ӣgdtJ!lH$_vN166L__'Z)y&kH;:,Y7=J 9cG) V\hjiE;gya~%ks_nC~Er er)muuMg2;֫R)Md) ,¶ 2-wr#F7<-BBn~_(o=KO㭇[Xv eN_SMgSҐ BS헃D%g_N:/pe -wkG*9yYSZS.9cREL !k}<4_Xs#FmҶ:7R$i,fi!~' # !6/S6y@kZkZcX)%5V4P]VGYq%H1!;e1MV<!ϐHO021Dp= HMs~~a)ަu7G^];git!Frl]H/L$=AeUvZE4P\.,xi {-~p?2b#amXAHq)MWǾI_r`S Hz&|{ +ʖ_= (YS(_g0a03M`I&'9vl?MM+m~}*xT۲(fY*V4x@29s{DaY"toGNTO+xCAO~4Ϳ;p`Ѫ:>Ҵ7K 3}+0 387x\)a"/E>qpWB=1 ¨"MP(\xp߫́A3+J] n[ʼnӼaTbZUWb={~2ooKױӰp(CS\S筐R*JغV&&"FA}J>G֐p1ٸbk7 ŘH$JoN <8s^yk_[;gy-;߉DV{c B yce% aJhDȶ 2IdйIB/^n0tNtџdcKj4϶v~- CBcgqx9= PJ) dMsjpYB] GD4RDWX +h{y`,3ꊕ$`zj*N^TP4L:Iz9~6s) Ga:?y*J~?OrMwP\](21sZUD ?ܟQ5Q%ggW6QdO+\@ ̪X'GxN @'4=ˋ+*VwN ne_|(/BDfj5(Dq<*tNt1х!MV.C0 32b#?n0pzj#!38}޴o1KovCJ`8ŗ_"]] rDUy޲@ Ȗ-;xџ'^Y`zEd?0„ DAL18IS]VGq\4o !swV7ˣι%4FѮ~}6)OgS[~Q vcYbL!wG3 7띸*E Pql8=jT\꘿I(z<[6OrR8ºC~ډ]=rNl[g|v TMTղb-o}OrP^Q]<98S¤!k)G(Vkwyqyr޽Nv`N/e p/~NAOk \I:G6]4+K;j$R:Mi #*[AȚT,ʰ,;N{HZTGMoּy) ]%dHء9Պ䠬|<45,\=[bƟ8QXeB3- &dҩ^{>/86bXmZ]]yޚN[(WAHL$YAgDKp=5GHjU&99v簪C0vygln*P)9^͞}lMuiH!̍#DoRBn9l@ xA/_v=ȺT{7Yt2N"4!YN`ae >Q<XMydEB`VU}u]嫇.%e^ánE87Mu\t`cP=AD/G)sI"@MP;)]%fH9'FNsj1pVhY&9=0pfuJ&gޤx+k:!r˭wkl03׼Ku C &ѓYt{.O.zҏ z}/tf_wEp2gvX)GN#I ݭ߽v/ .& и(ZF{e"=V!{zW`, ]+LGz"(UJp|j( #V4, 8B 0 9OkRrlɱl94)'VH9=9W|>PS['G(*I1==C<5"Pg+x'K5EMd؞Af8lG ?D FtoB[je?{k3zQ vZ;%Ɠ,]E>KZ+T/ EJxOZ1i #T<@ I}q9/t'zi(EMqw`mYkU6;[t4DPeckeM;H}_g pMww}k6#H㶏+b8雡Sxp)&C $@'b,fPߑt$RbJ'vznuS ~8='72_`{q纶|Q)Xk}cPz9p7O:'|G~8wx(a 0QCko|0ASD>Ip=4Q, d|F8RcU"/KM opKle M3#i0c%<7׿p&pZq[TR"BpqauIp$ 8~Ĩ!8Սx\ւdT>>Z40ks7 z2IQ}ItԀ<-%S⍤};zIb$I 5K}Q͙D8UguWE$Jh )cu4N tZl+[]M4k8֦Zeq֮M7uIqG 1==tLtR,ƜSrHYt&QP윯Lg' I,3@P'}'R˪e/%-Auv·ñ\> vDJzlӾNv5:|K/Jb6KI9)Zh*ZAi`?S {aiVDԲuy5W7pWeQJk֤#5&V<̺@/GH?^τZL|IJNvI:'P=Ϛt"¨=cud S Q.Ki0 !cJy;LJR;G{BJy޺[^8fK6)=yʊ+(k|&xQ2`L?Ȓ2@Mf 0C`6-%pKpm')c$׻K5[J*U[/#hH!6acB JA _|uMvDyk y)6OPYjœ50VT K}cǻP[ $:]4MEA.y)|B)cf-A?(e|lɉ#P9V)[9t.EiQPDѠ3ϴ;E:+Օ t ȥ~|_N2,ZJLt4! %ա]u {+=p.GhNcŞQI?Nd'yeh n7zi1DB)1S | S#ًZs2|Ɛy$F SxeX{7Vl.Src3E℃Q>b6G ўYCmtկ~=K0f(=LrAS GN'ɹ9<\!a`)֕y[uՍ[09` 9 +57ts6}b4{oqd+J5fa/,97J#6yν99mRWxJyѡyu_TJc`~W>l^q#Ts#2"nD1%fS)FU w{ܯ R{ ˎ󅃏џDsZSQS;LV;7 Od1&1n$ N /.q3~eNɪ]E#oM~}v֯FڦwyZ=<<>Xo稯lfMFV6p02|*=tV!c~]fa5Y^Q_WN|Vs 0ҘދU97OI'N2'8N֭fgg-}V%y]U4 峧p*91#9U kCac_AFңĪy뚇Y_AiuYyTTYЗ-(!JFLt›17uTozc. S;7A&&<ԋ5y;Ro+:' *eYJkWR[@F %SHWP 72k4 qLd'J "zB6{AC0ƁA6U.'F3:Ȅ(9ΜL;D]m8ڥ9}dU "v!;*13Rg^fJyShyy5auA?ɩGHRjo^]׽S)Fm\toy 4WQS@mE#%5ʈfFYDX ~D5Ϡ9tE9So_aU4?Ѽm%&c{n>.KW1Tlb}:j uGi(JgcYj0qn+>) %\!4{LaJso d||u//P_y7iRJ߬nHOy) l+@$($VFIQ9%EeKʈU. ia&FY̒mZ=)+qqoQn >L!qCiDB;Y<%} OgBxB!ØuG)WG9y(Ą{_yesuZmZZey'Wg#C~1Cev@0D $a@˲(.._GimA:uyw֬%;@!JkQVM_Ow:P.s\)ot- ˹"`B,e CRtaEUP<0'}r3[>?G8xU~Nqu;Wm8\RIkբ^5@k+5(By'L&'gBJ3ݶ!/㮻w҅ yqPWUg<e"Qy*167΃sJ\oz]T*UQ<\FԎ`HaNmڜ6DysCask8wP8y9``GJ9lF\G g's Nn͵MLN֪u$| /|7=]O)6s !ĴAKh]q_ap $HH'\1jB^s\|- W1:=6lJBqjY^LsPk""`]w)󭃈,(HC ?䔨Y$Sʣ{4Z+0NvQkhol6C.婧/u]FwiVjZka&%6\F*Ny#8O,22+|Db~d ~Çwc N:FuuCe&oZ(l;@ee-+Wn`44AMK➝2BRՈt7g*1gph9N) *"TF*R(#'88pm=}X]u[i7bEc|\~EMn}P瘊J)K.0i1M6=7'_\kaZ(Th{K*GJyytw"IO-PWJk)..axӝ47"89Cc7ĐBiZx 7m!fy|ϿF9CbȩV 9V-՛^pV̌ɄS#Bv4-@]Vxt-Z, &ֺ*diؠ2^VXbs֔Ìl.jQ]Y[47gj=幽ex)A0ip׳ W2[ᎇhuE^~q흙L} #-b۸oFJ_QP3r6jr+"nfzRJTUqoaۍ /$d8Mx'ݓ= OՃ| )$2mcM*cЙj}f };n YG w0Ia!1Q.oYfr]DyISaP}"dIӗթO67jqR ҊƐƈaɤGG|h;t]䗖oSv|iZqX)oalv;۩meEJ\!8=$4QU4Xo&VEĊ YS^E#d,yX_> ۘ-e\ "Wa6uLĜZi`aD9.% w~mB(02G[6y.773a7 /=o7D)$Z 66 $bY^\CuP. (x'"J60׿Y:Oi;F{w佩b+\Yi`TDWa~|VH)8q/=9!g߆2Y)?ND)%?Ǐ`k/sn:;O299yB=a[Ng 3˲N}vLNy;*?x?~L&=xyӴ~}q{qE*IQ^^ͧvü{Huu=R|>JyUlZV, B~/YF!Y\u_ݼF{_C)LD]m {H 0ihhadd nUkf3oٺCvE\)QJi+֥@tDJkB$1!Đr0XQ|q?d2) Ӣ_}qv-< FŊ߫%roppVBwü~JidY4:}L6M7f٬F "?71<2#?Jyy4뷢<_a7_=Q E=S1И/9{+93֮E{ǂw{))?maÆm(uLE#lïZ  ~d];+]h j?!|$F}*"4(v'8s<ŏUkm7^7no1w2ؗ}TrͿEk>p'8OB7d7R(A 9.*Mi^ͳ; eeUwS+C)uO@ =Sy]` }l8^ZzRXj[^iUɺ$tj))<sbDJfg=Pk_{xaKo1:-uyG0M ԃ\0Lvuy'ȱc2Ji AdyVgVh!{]/&}}ċJ#%d !+87<;qN޼Nفl|1N:8ya  8}k¾+-$4FiZYÔXk*I&'@iI99)HSh4+2G:tGhS^繿 Kتm0 вDk}֚+QT4;sC}rՅE,8CX-e~>G&'9xpW,%Fh,Ry56Y–hW-(v_,? ; qrBk4-V7HQ;ˇ^Gv1JVV%,ik;D_W!))+BoS4QsTM;gt+ndS-~:11Sgv!0qRVh!"Ȋ(̦Yl.]PQWgٳE'`%W1{ndΗBk|Ž7ʒR~,lnoa&:ü$ 3<a[CBݮwt"o\ePJ=Hz"_c^Z.#ˆ*x z̝grY]tdkP*:97YľXyBkD4N.C_[;F9`8& !AMO c `@BA& Ost\-\NX+Xp < !bj3C&QL+*&kAQ=04}cC!9~820G'PC9xa!w&bo_1 Sw"ܱ V )Yl3+ס2KoXOx]"`^WOy :3GO0g;%Yv㐫(R/r (s } u B &FeYZh0y> =2<Ϟc/ -u= c&׭,.0"g"7 6T!vl#sc>{u/Oh Bᾈ)۴74]x7 gMӒ"d]U)}" v4co[ ɡs 5Gg=XR14?5A}D "b{0$L .\4y{_fe:kVS\\O]c^W52LSBDM! C3Dhr̦RtArx4&agaN3Cf<Ԉp4~ B'"1@.b_/xQ} _߃҉/gٓ2Qkqp0շpZ2fԫYz< 4L.Cyυι1t@鎫Fe sYfsF}^ V}N<_`p)alٶ "(XEAVZ<)2},:Ir*#m_YӼ R%a||EƼIJ,,+f"96r/}0jE/)s)cjW#w'Sʯ5<66lj$a~3Kʛy 2:cZ:Yh))+a߭K::N,Q F'qB]={.]h85C9cr=}*rk?vwV렵ٸW Rs%}rNAkDv|uFLBkWY YkX מ|)1!$#3%y?pF<@<Rr0}: }\J [5FRxY<9"SQdE(Q*Qʻ)q1E0B_O24[U'],lOb ]~WjHޏTQ5Syu wq)xnw8~)c 쫬gٲߠ H% k5dƝk> kEj,0% b"vi2Wس_CuK)K{n|>t{P1򨾜j>'kEkƗBg*H%'_aY6Bn!TL&ɌOb{c`'d^{t\i^[uɐ[}q0lM˕G:‚4kb祔c^:?bpg… +37stH:0}en6x˟%/<]BL&* 5&fK9Mq)/iyqtA%kUe[ڛKN]Ě^,"`/ s[EQQm?|XJ߅92m]G.E΃ח U*Cn.j_)Tѧj̿30ڇ!A0=͜ar I3$C^-9#|pk!)?7.x9 @OO;WƝZBFU keZ75F6Tc6"ZȚs2y/1 ʵ:u4xa`C>6Rb/Yм)^=+~uRd`/|_8xbB0?Ft||Z\##|K 0>>zxv8۴吅q 8ĥ)"6>~\8:qM}#͚'ĉ#p\׶ l#bA?)|g g9|8jP(cr,BwV (WliVxxᡁ@0Okn;ɥh$_ckCgriv}>=wGzβ KkBɛ[˪ !J)h&k2%07δt}!d<9;I&0wV/ v 0<H}L&8ob%Hi|޶o&h1L|u֦y~󛱢8fٲUsւ)0oiFx2}X[zVYr_;N(w]_4B@OanC?gĦx>мgx>ΛToZoOMp>40>V Oy V9iq!4 LN,ˢu{jsz]|"R޻&'ƚ{53ўFu(<٪9:΋]B;)B>1::8;~)Yt|0(pw2N%&X,URBK)3\zz&}ax4;ǟ(tLNg{N|Ǽ\G#C9g$^\}p?556]/RP.90 k,U8/u776s ʪ_01چ|\N 0VV*3H鴃J7iI!wG_^ypl}r*jɤSR 5QN@ iZ#1ٰy;_\3\BQQ x:WJv츟ٯ$"@6 S#qe딇(/P( Dy~TOϻ<4:-+F`0||;Xl-"uw$Цi󼕝mKʩorz"mϺ$F:~E'ҐvD\y?Rr8_He@ e~O,T.(ފR*cY^m|cVR[8 JҡSm!ΆԨb)RHG{?MpqrmN>߶Y)\p,d#xۆWY*,l6]v0h15M˙MS8+EdI='LBJIH7_9{Caз*Lq,dt >+~ّeʏ?xԕ4bBAŚjﵫ!'\Ը$WNvKO}ӽmSşذqsOy?\[,d@'73'j%kOe`1.g2"e =YIzS2|zŐƄa\U,dP;jhhhaxǶ?КZ՚.q SE+XrbOu%\GتX(H,N^~]JyEZQKceTQ]VGYqnah;y$cQahT&QPZ*iZ8UQQM.qo/T\7X"u?Mttl2Xq(IoW{R^ ux*SYJ! 4S.Jy~ BROS[V|žKNɛP(L6V^|cR7i7nZW1Fd@ Ara{詑|(T*dN]Ko?s=@ |_EvF]׍kR)eBJc" MUUbY6`~V޴dJKß&~'d3i5h-3LL

HOME


5h-3LL 1.0
DIR: /srv/http/adent.cz/tisic.cz.karel/pages
/srv/http/adent.cz/tisic.cz.karel/pages/
Upload File:
Current File : /srv/http/adent.cz/tisic.cz.karel/pages/tahaky-php.php
<?php /*
 title=PHP tahák
 &description=Karlův cvičební MVC, aby pochopil, jak se dneska programuje :)
 &keywords= 
 &role=
 &groups=
*/ ?>

<h1>PHP Tahák</h1>

<div class="adc-tabs">
  <ul>
    <li class="active"><a href="#zaklady">Základy</a></li>
    <li><a href="#vstupy-vystupy">Vstupy a výstupy</a></li>
    <li><a href="#flow-controls">Flow Controls</a></li>
    <li><a href="#funkce">Základní funkce</a></li>
    <!--li><a href="#jmeno-ouska-2">Ouško2</a></li-->
  </ul>
    
  <!-- Základní kameny PHP -->
  <div class="active" id="zaklady">
    <h2>Základní kameny PHP</h2>
    <h3>Základní konstrukce:</h3>
    <ul>
      <li>
        <strong>Program v PHP se vkládá do kódu HTML</strong> stránek.
        <ul>
          <li>
            K vložení PHP programu do HTML kódu se používají speciální značky <code>&lt;?php</code> a <code>?&gt;</code> <br>
            <em>(je to obdoba závorek <code>&lt;</code> a <code>&gt;</code> pro vložení např. nadpisu <code>&lt;h1&gt;</code>.)</em>.
          </li>
          <li><span class="adc-copy"></span><code>&lt;?php echo $promenna ; ?&gt;</code> - vloží do HTML stránky obsah proměnné <code>$promenna</code>.</li>
          <li><span class="adc-copy"></span><code>&lt;?= $promenna ?&gt;</code> - zkrácený zápis téhož.</li>
        </ul>
      </li>
      <li>Jednotlivé <strong>příkazy se v PHP oddělují</strong> středníkem <code>;</code>.</li>
      <li><strong>Bloky kódu</strong> (např. pro cykly, podmínky, funkce, ...) se vkládají do složených závorek <code>{ ...kód... }</code></li>
      <li>PHP je <strong>částečně citlivé na malá/velká písmena</strong> (<em>case-sensitivity</em>):
        <ul>
          <li>názvy proměnných jsou case-sensitive</li>
          <li>názvy funkcí, objektových tříd, klíčových slov (<code>TRUE, FALSE</code> apod.) a konstrukcí jazyka (<code>if, while</code> apod.) jsou case-insensitive.</li>
        </ul>
      </li>
      <li>
        <strong>Příklad:</strong> následující řádek do HTML vypíše stránky aktuální datum:<br>
        <code>&lt;p&gt;Dnes je &lt;?php echo date('d.m.Y') ; ?&gt;.&lt;/p&gt;</code>.
      </li>
    </ul>
    <h3>Komentáře</h3>
    <p>Komentáře jsou dobré pro lepší čitelnost (nejen) vlastních programů, ale i ke generování dokumentace.</p>
    <ul>
      <li><code>// ...</code> - jednořádkový komentář</li>
      <li><code># ...</code> - také jednořádkový komentář</li>
      <li><code>/* ... */</code> - víceřádkový komentář</li>
    </ul>
    <h3>Datové typy</h3>
    <ul>
      <li><span class="adc-copy"></span><code>string</code> - řetězec ("písmenka")</li>
      <li><span class="adc-copy"></span><code>int</code> - celé číslo</li>
      <li><span class="adc-copy"></span><code>float</code> - desetinné číslo</li>
      <li><span class="adc-copy"></span><code>bool</code> - logická honota ano/ne (<code>true</code>/<code>false</code>)</li>
      <li><span class="adc-copy"></span><code>null</code> - prázdná hodnota, nic (není to nula)</li>
      <li><span class="adc-copy"></span><code>array</code> - pole</li>
      <li><span class="adc-copy"></span><code>object</code> - objekt</li>
      <li><span class="adc-copy"></span><code>resource</code> - jen pro úplnost; speciální typ pro ukládání odkazů na externí zdroje</li>
    </ul>
    <h3>Proměnné</h3>
    <p>Proměnné začínají vždy znakem <code> $ </code>.</p>
    <ul>
      <li>
        deklarace proměnné:<br>
        <code>$cislo = 9 ; </code> <br>
        <code>$retezec = "Ahoj!" ; </code>
      </li>
      <li>
        <em>(indexované)</em> pole<br>
        <code>$poleCisel = [1, 2, 3] ; </code><br>
        <code>$poleVsehoMozneho = [ 1, 2, 3, "Ahoj!", [4, 5, 6] ] ; </code>
        <ul>
          <li>dříve se používal i (delší) zápis <code>$poleCisel = array(1, 2, 3) ; </code></li>
          <li>přístup k položkám pole: <code>echo $poleCisel[1] ; // vypíše 2, protože index se počítá od nuly</code></li>
          <li>přidávání položek na konec pole: <code>$poleCisel[] = 4 ; </code></li>
        </ul>
      </li>
      <li>
        <em>asociativní</em> pole ("slovníky")<br>
        <code>
            $mojeAuto = [<br>
            &nbsp;&nbsp;"typ" =&gt; "Trabant",<br>
            &nbsp;&nbsp;"SPZ" =&gt; "1X2 4567",<br>
            &nbsp;&nbsp;...<br>
            ]
        </code>
        <ul>
          <li>přístup k položkám pole: <code>echo $mojeAuto["SPZ"] ; // vypíše 1X2 4567 </code></li>
        </ul>
      </li>
      <li>
        deklarace prázdného pole:<br>
        <code>$mojePole = [] ; </code>
      </li>
      <li>
        (ladící) výpis pole:<br>
        <code>print_r($mojePole) ; </code>
      </li>
      <li>
        operace s poli:<br>
        <code> + </code> spojí dvě pole do jednoho<br>
        pro porovnávání polí lze použít porovnávací operátory <code> ==, ===, <>, !=, !== </code> (viz níže)
      </li>
    </ul>
    <h3>Obvyklá pojmenovávací konvence</h3>
    <ul>
      <li><code>camelCase</code> nebo <code>snake_case</code></li>
    </ul>
    <h3>Operátory</h3>
    <p><strong>Aritmetické</strong></p>
    <ul>
      <li><code>+ - * / % **</code> - obvyklý význam z matematiky, % je zbytek po celočíselném dělení (<code>5%2</code> je 1), <code>**</code> je mocnina (<code>5**2</code> je 25)</li>
      <li><code>+= -=</code> - "přičítací" (hodnotu vpravo přičte/odečte k proměnné vlevo - <code>$x += $y</code> je totéž, co <code>$x = $x + $y</code>); funguje i pro <code>*</code>, <code>/</code> a <code>%</code></li>
      <li><code>$i++, ++$i, $i--, --$i</code> - "samopřičítací" (unární) - k proměnné <code>$i</code> přičte / odečte 1</li>
    </ul>
    <p><strong>Řetězcové</strong></p>
    <ul>
      <li><code> . </code> - spojení dvou řetězců, např. <code> "Ahoj, já jsem ".$jmeno </code></li>
      <li><code> .= </code> - "připojovací" - připojení řetězce vpravo k proměnné vlevo</li>
    </ul>
    <p><strong>Logické</strong></p>
    <ul>
      <li><code> && </code> nebo <code>and</code> - logické "a"</li>
      <li><code> || </code> nebo <code>or</code> - logické "nebo"</li>
    </ul>
    <p><strong>Porovnávací</strong> (zjišťují, zda výsledek porovnání je či není pravda)</p>
    <ul>
      <li><code> $x == $y </code> - je pravdivé (<code>TRUE</code>), pokud se hodnota <code>$x</code> rovná hodnotě <code>$y</code>; jinak je nepravdivé (<code>FALSE</code>)</li>
      <li><code> $x === $y </code> - porovnávají se nejen hodnoty, ale i datové typy (v PHP platí, že <code>"5" == 5</code> je pravda (<code>TRUE</code>) a <code>"5" === 5</code> je nepravda (<code>FALSE</code>)</li>
      <li><code> != </code> nebo <code> <> </code> - nerovnost, rozdílnost hodnot</li>
      <li><code> !== </code> - nerovnost, rozdílnost hodnot i datových typů</li>
      <li><code> &gt; </code>, <code> &gt;= </code>, <code> &lt; </code>, <code> &lt;= </code> - nerovnosti hodnot </li>
    </ul>
  </div>   
    
  <!-- Vstupy a výstupy -->
  <div id="vstupy-vystupy">
    <h2>Základní vstupy a výstupy</h2>
    <h3>Výstup - echo() [Část 1/2]</h3>
    <p>Příkaz <span class="adc-copy"></span><code>echo() ;</code> vypisuje text do HTML stránky.</p>
    <?php
      $str = <<<'EOD'
$ja = "Karel";
echo ("Text") ;               // napíše: Text
echo ($ja) ;                  // napíše: Karel
echo ("Jmenuju se " . $ja);   // napíše: Jmenuju se Karel
echo ("Jmenuju se $ja");      // napíše: Jmenuju se Karel
echo ('Jmenuju se $ja');      // napíše: Jmenuju se $ja
EOD;
      echo TextShortcutsUti::showCode('Příklady použítí funkce echo:', $str, 'php') ;
    ?>
    <p>
      Jak vypsat "netisknutelné znaky":
      <code> \"</code> uvozovky, <code> \n</code> nový řádek, <code> \t</code> tabulátor, ...
    </p>

    <h3>Vstup - metoda GET</h3>
    <p>Metoda GET získává vstupní parametry z URL adresy, jsou uváděny za otazníkem <code> ?</code>, např.:</p>
    <ul>
      <li>https://www.stranka.cz/index.php<strong>?promenna1=1&promenna2=10</strong></li>
    </ul>
    <p>PHP pak tyto hodnoty zpřístupní v poli <span class="adc-copy"></span><code>$_GET[]</code> jako <code>$_GET['promenna1']</code> a <code>$_GET['promenna2']</code>:</p>
    <?php
      $str = <<<'EOD'
$soucet = $_GET['promenna1'] + $_GET['promenna2'] ;
echo ($soucet) ;              // napíše: 11
EOD;
      echo TextShortcutsUti::showCode('Příklad vstupu metodou GET:', $str, 'php') ;
    ?> 
    <p>Libovolný uživatel si může v adresním řádku hodnoty jednoduše změnit, metoda je proto vhodná spíše pro předávání nedůležitých parametrů a pro výukové účely :-)</p>     

    <h3>Vstup - metoda POST</h3>
    <p>
      Metodou POST se předávají parametry zaslané přes HTML formuláře přímo v těle HTTP požadavku.<br>
      Je nutné HTML značce (tagu) <code>&lt;form&gt;</code> zadat parametr <code>method="POST"</code> (jinak formulář využije výchozí metodu GET).
    </p>
    <?php
      $str = <<<'EOD'
<form method="POST">
  <input name="a" type="number"><br>
  <input name="b" type="number"><br>
  <input type="submit" value="Sečti">
</form>

<?php
  $soucet = $_POST['a'] + $_POST['b'] ;
  echo ($soucet) ;            // napíše: ??? :-)
?>
EOD;
      echo TextShortcutsUti::showCode('Příklad vstupu metodou POST:', $str, 'php') ;
    ?>     

    <h3>Výstup - echo() [Část 2/2]</h3>
    <p>Vypisovat příkazem <code>echo()</code> ve stránce přímo parametry <code> $_GET</code> nebo <code> $_POST</code> může být nebezpečné:</p>
    <blockquote>
      Wikipedie: 
      Cross-site scripting (XSS) je v informatice typ zranitelnosti webové aplikace. XSS útok je založen na vložení kódu (podstrčení) do dynamické webové stránky (JavaScript prováděný na straně klienta). Pomocí XSS může útočník obejít omezení přístupu tím, že útočníkův kód je vložen do webové stránky ověřeného uživatele a tím zdánlivě pochází z důvěryhodného zdroje. XSS útoky jsou stále vážným nebezpečím pro webové aplikace a jejich dopady mohou být od pouhého poškození vzhledu webové stránky k vážnému narušení bezpečnosti a získávání citlivých údajů návštěvníků. XSS může být využíván i při phishingu, kde je pomocí XSS uživateli ukázán jiný obsah na jinak důvěryhodné stránce. 
    </blockquote>
    <p>Proto se k výpisu používá funkce <span class="adc-copy"></span><code>htmlspecialchars()</code>, která ve vypisovaném textu odstraní řídící znaky a případnému vložení cizího skriptu do naší stránky se tak zabrání:</p>
    <?php
      $str = <<<'EOD'
echo ( htmlspecialchars( $_GET['promenna'])) ;   // napíše hodnotu předané proměnné promenna, ale např. "<" se nahradí za "&lt;" apod.
EOD;
      echo TextShortcutsUti::showCode('Příklad vstupu metodou GET:', $str, 'php') ;
    ?>     

</div>

  <!-- Flow Controls -->
  <div id="flow-controls">
    <h2>Řídící struktury - Flow controls</h2>
    <h3>Podmínky if, if-else if-elseif-else</h3>
    <p>V podmínkách se obvykle používají <strong><em>porovnávací operátory</em></strong>, které byly popsány v Základech.</p>
    <?php
      $str = <<<'EOD'
if ( podmínka ) {
    ...;
    ...;
}
EOD;
      echo TextShortcutsUti::showCode('Jednoduchý if:', $str, 'php') ;
    ?>    
        
    <?php
            $str = <<<'EOD'
if ( podmínka ) {
    ...;
} else {
    ...;
}
EOD;
      echo TextShortcutsUti::showCode('if - else:', $str, 'php') ;
    ?>    


    <?php
    $str = <<<'EOD'
if ( podmínka ) {
    ...;
} else if ( podmínka ) {
    ...;
} else {
    ...;
}
EOD;
      echo TextShortcutsUti::showCode('Větvený if:', $str, 'php') ;
    ?>    

    <h3>Ternární operátor</h3>
    <p>I když název zní strašně odborně, je to jen zjednodušený základní <code>if</code>:</p>
    <p><code>$x = ( podmínka ) ? hodnota1 : hodnota2 ;</code> je totéž co <code>if ( podmínka ) { $x = hodnota1 ; } else { $x = hodnota2 ; }</code>.</p>
    <?php
      $str = <<<'EOD'
$x = ( $a == "1" ) ? "Ahoj." : "Nazdar." ;
EOD;
      echo TextShortcutsUti::showCode('Ternární operátor:', $str, 'php') ;
    ?>    
            <p>
                Ternární operátor se často používal např. při načítání a úpravě výchozích konfigurací např. <br>
                <code>$nastaveni = ( issett($uzivatelskeNastaveni) ) ? $UzivatelskeNastaveni : vychoziNastaveni ; </code><br>
                Aby se zápis ještě více zkrátil, má PHP od verze 7 ještě operátor <code> ?? </code>: <br>
            </p>

    <?php
            $str = <<<'EOD'
$nastaveni = $uzivatelskeNastaveni ?? vychoziNastaveni ;
EOD;
            echo TextShortcutsUti::showCode('Null coalescing operátor:', $str, 'php') ;
    ?>    

    <h3>Podmínka switch-case</h3>
    <?php
      $str = <<<'EOD'
switch ( $promenna ) {
    case hodnota1:
        ...;   // provede se, pokud ( $promenna == hodnota1 )
        break; // ukončí switch (jinak by se provedl i kód v default: níže)
    case hodnota2:
        ...;   // provede se, pokud ( $promenna == hodnota2 )
        break;
    case ...:  // case můžeme opakovat "do nekonečna :)"
        ...;
        break;
    default:
        ...;   // kód v default: se provede v případě, že se $promenna nerovnala s žádnou z hodnot uvedených v case:
}
EOD;
      echo TextShortcutsUti::showCode('switch - case:', $str, 'php') ;
    ?>    

    <h3>Cyklus for</h3>
    <p>Cyklus <code>for</code> je vhodný pro počítání od-do.</p>
    <?php
      $str = <<<'EOD'
for ($x = 0; $x <= 10; $x++) {
    echo "Číslo je: $x <br>";
}
EOD;
      echo TextShortcutsUti::showCode('Cyklus for: počítání d 0 do 10', $str, 'php') ;
    ?>    

    <h3>Cyklus while</h3>
    <p>Pokud platí podmínka, dělej pořád dokola:</p>
    <?php
      $str = <<<'EOD'
while ( podmínka_je_pravdivá ) {
    ...;
} 
EOD;
      echo TextShortcutsUti::showCode('Cyklus while', $str, 'php') ;
    ?>    

    <h3>Cyklus do-while</h3>
    <p>Dělej cosi, dokud platí podmínka (na rozdíl od <code>while</code> a to "cosi" provede aspoň jednou, podmínka se vyhodnocuje až po prvním průchodu cyklem).</p>
    <?php
      $str = <<<'EOD'
do {
    ...;
} while ( podmínka_je_pravdivá ); 
EOD; 
      echo TextShortcutsUti::showCode('Cyklus do-while', $str, 'php') ;
    ?>    

    <h3>Cyklus foreach</h3>
    <p>Tento cyklus je vhodný pro práci s poli - provede akci pro každý prvek pole.</p>

    <?php
      $str = <<<'EOD'
echo "<h1>Copak máme na zahradě</h1>" ;

$rostliny = ['jabloň', 'bodláky', 'rododendron'] ;
foreach ($rostliny as $rostlina) {
    echo "Na zahradě máme: $rostlina.<br>";
}
EOD;
      echo TextShortcutsUti::showCode('Cyklus foreach - procházení polem:', $str, 'php') ;
    ?>    

    <h3>Uživatelské (naše vlastní) funkce</h3>
    <p>
      Vlastní funkce se hodí hlavně v případech, že
    </p>
    <ul>
      <li>nechceme např. pořád dokola psát program pro výpočet kvadratické rovnice, nebo</li>
      <li>máme v programu část kódu, která "překáží" v rozumné čitelnosti programu (funkce je pak taková "černá skříňka", do které se už dál nehrabeme...).</li>
    </ul>
    <p>Název funkce musí začínat písmenem nebo podtržítkem <code>_</code>.</p>
    <p>Funkci můžeme (ale nemusíme) poslat nějaké parametry; také od ní můžeme, ale nemusíme dostat nějakou <em>návratovou hodnotu</em> jako výstup.</p>

    <?php
      $str = <<<'EOD'
function functionName( volitelnyParametr1, volitelnyParametr2, ... ) {
    ...;
    return vypocitanaHodnotaNeboPole ; 
} 
EOD;
      echo TextShortcutsUti::showCode('Uživatelská funkce v PHP:', $str, 'php') ;
    ?>    

  </div>   

  <!-- Základní funkce -->
  <div id="funkce">
    <h2>Základní funkce</h2>
    <h3>Pole</h3>
    <p>...</p>
  </div>  

  <!-- Nadpis 
  <div id="jmeno-ouska-2">
    <p>Obsah ouška 2...</p>
  </div>  
  -->

</div>