{"id":336,"date":"2023-11-13T10:23:21","date_gmt":"2023-11-13T09:23:21","guid":{"rendered":"https:\/\/gdm.sosthe.sk\/?page_id=336"},"modified":"2023-11-13T10:25:16","modified_gmt":"2023-11-13T09:25:16","slug":"premenne","status":"publish","type":"page","link":"https:\/\/gdm.sosthe.sk\/?page_id=336","title":{"rendered":"Premenn\u00e9"},"content":{"rendered":"<p>V\u0161etky premenn\u00e9 v jazyku PHP za\u010d\u00ednaj\u00fa symbolom dol\u00e1ra (<em>$<\/em>). Pod\u013ea toho server pozn\u00e1, \u017ee ide o premenn\u00fa a tak s \u0148ou bude tie\u017e nar\u00e1ba\u0165. Za t\u00fdmto symbolom m\u00f4\u017ee nasledova\u0165 len p\u00edsmeno alebo podtrhovn\u00edk. Potom u\u017e m\u00f4\u017ee nasledova\u0165 \u010d\u00edslica, p\u00edsmeno alebo podtrhovn\u00edk. Ve\u013ek\u00fdm zjednodu\u0161en\u00edm jazyka PHP je to, \u017ee sa premenn\u00e9 nemusia explicitne deklarova\u0165. To znamen\u00e1, \u017ee odpad\u00e1 z\u00e1hlavie s deklarovan\u00fdmi premenn\u00fdmi. Tak\u017ee kdeko\u013evek na PHP str\u00e1nke sa n\u00e1m zachce vlo\u017ei\u0165 nov\u00fa premenn\u00fa, m\u00f4\u017eeme to urobi\u0165 napr. pod\u013ea nasleduj\u00facej syntaxe<\/p>\n<pre>  $meno = \"Martin\";\r\n  $meno_priezvisko = \"Martin Kukan\";\r\n  $_meno = \"Martin\";<\/pre>\n<p>V php rozli\u0161ujeme tieto typy premenn\u00fdch:<\/p>\n<ul>\n<li><em>znakov\u00fd re\u0165azec<\/em>\u00a0(string)<\/li>\n<li><em>cel\u00e9 \u010d\u00edslo<\/em>\u00a0(integer)<\/li>\n<li><em>desatinn\u00e9 \u010d\u00edslo<\/em>\u00a0(double)<\/li>\n<li><em>pole<\/em>\u00a0(array)<\/li>\n<li><em>objekt<\/em>\u00a0(object)<\/li>\n<li><em>booleovsk\u00fd typ<\/em>\u00a0(boolean \u2013 true, false)<\/li>\n<li><em>premenn\u00e1 bez hodnoty<\/em>\u00a0\u2013 pr\u00e1zdna (NULL)<\/li>\n<li><em>glob\u00e1lne premenn\u00e9<\/em>\u00a0\u2013 podporovan\u00e9 od verzie php 4<\/li>\n<\/ul>\n<p>Typ premennej sa ur\u010d\u00ed na z\u00e1klade jej hodnoty v okam\u017eiku priradenia. V pr\u00edpade potreby je mo\u017en\u00e9 typ premennej zmeni\u0165 tzv. pretypovan\u00edm premennej.<\/p>\n<h2>1. Znakov\u00e9 re\u0165azce<\/h2>\n<p>M\u00f4\u017eeme ich p\u00edsa\u0165 do dvojit\u00fdch alebo jednoduch\u00fdch \u00favodzoviek. Dvojit\u00e9 \u00favodzovky n\u00e1m v\u0161ak umo\u017e\u0148uj\u00fa nahradenie premenn\u00fdch napr\u00edklad v pr\u00edkaze\u00a0<em>echo<\/em>\u00a0(v\u00fdpis na obrazovku), av\u0161ak text v jednoduch\u00fdch \u00favodzovk\u00e1ch bude zobrazen\u00fd, tak ako je tam nap\u00edsan\u00fd. To znamen\u00e1, \u017ee server nenahrad\u00ed premenn\u00e9 ani escape sekvencie. M\u00f4\u017eeme si to sk\u00fasi\u0165 na n\u00e1zornom pr\u00edklade:<\/p>\n<p><em>Pr\u00edklad:<\/em><\/p>\n<pre> $meno = \"Peter\";\r\n echo \"Ahoj $meno \\n\";\r\n echo 'Ahoj $meno \\n';<\/pre>\n<p><em>V\u00fdsledok pr\u00edkladu:<\/em><\/p>\n<p>Ahoj Peter<br \/>\nAhoj $meno \\n<\/p>\n<p>Pokia\u013e chceme do dvojit\u00fdch \u00favodzoviek nap\u00edsa\u0165 napr. sp\u00e4tn\u00e9 lom\u00edtko alebo \u00favodzovky, tak by to ne\u0161lo, preto\u017ee by si server myslel, \u017ee to m\u00e1 \u201eurobi\u0165\u201c. Preto boli vytvoren\u00e9 tzv. Escape sekvencie (s\u00fa to znaky, ktor\u00e9 server prevedie na potrebn\u00e9 znaky). S\u00fahrn niektor\u00fdch sekvenci\u00ed:<\/p>\n<p>\\\u201c \u00favodzovky<br \/>\n\\\\ sp\u00e4tn\u00e9 lom\u00edtko<br \/>\n\\n za\u010diatok nov\u00e9ho riadku<br \/>\n\\t tabel\u00e1tor<br \/>\n\\r n\u00e1vrat na za\u010diatok riadku<br \/>\n\\$ symbol dol\u00e1ru<\/p>\n<p><em>Pr\u00edklad:<\/em><\/p>\n<pre> $meno = \"Peter\";\r\n echo \"Ahoj \\\"$meno\\\" \\$meno\\\\ \\n\";<\/pre>\n<p><em>V\u00fdsledok pr\u00edkladu:<\/em><\/p>\n<p>Ahoj \u201ePeter\u201c $meno\\<\/p>\n<p>Sp\u00e1janie re\u0165azcov sa rob\u00ed pomocou bodky:<\/p>\n<p><em>Pr\u00edklad:<\/em><\/p>\n<pre>&lt;?php\r\n echo \"Tvoje meno je $meno &lt;br \/&gt;\";\r\n echo \"Dvan\u00e1s\u0165 delen\u00e9 osem = \".(12\/8).\"&lt;br \/&gt;\";\r\n $var = \"Dobr\u00fd de\u0148 \";\r\n $var .= \"pane\";\r\n echo $var;\r\n ?&gt;<\/pre>\n<p><em>V\u00fdsledok pr\u00edkladu:<\/em><\/p>\n<p>Tvoje meno je Peter<br \/>\nDvan\u00e1s\u0165 delen\u00e9 osem = 1.5<br \/>\nDobr\u00fd de\u0148 pane<\/p>\n<p>V prvom pr\u00edpade sa \u017eiadne spojenie nemuselo pou\u017ei\u0165, preto\u017ee v\u010faka dvojit\u00fdm \u00favodzovk\u00e1m server vie, \u017ee tam m\u00e1 doplni\u0165 premenn\u00fa\u00a0<em>$meno<\/em>. V druhom pr\u00edpade sa spojili re\u0165azec s v\u00fdsledkom delenia pomocou bodky. Tret\u00ed pr\u00edpad ukazuje ako sa daj\u00fa \u013eahko spoji\u0165 dva re\u0165azce v priebehu dokumentu pomocou oper\u00e1tora\u00a0<em>.=<\/em>.<\/p>\n<p><em>Pr\u00edklad:<\/em><\/p>\n<pre>&lt;?php\r\n echo (\"4\" . \"5\");\r\n echo (\"4\".\"5\");\r\n echo (4 . 5);\r\n echo (4.5);\r\n ?&gt;<\/pre>\n<p><em>V\u00fdsledok pr\u00edkladu:<\/em><\/p>\n<p>45<br \/>\n45<br \/>\n45<br \/>\n4.5<\/p>\n<h2>2. Cel\u00e9 \u010d\u00edsla<\/h2>\n<p>Rozsah cel\u00fdch \u010d\u00edsiel odpoved\u00e1 d\u00e1tov\u00e9mu typu\u00a0<em>long<\/em>\u00a0jazyka C. Na 32 bitov\u00fdch platform\u00e1ch m\u00f4\u017ee by\u0165 teda v rozsahu -2149483648 a\u017e + 2147483647. Pokia\u013e d\u00f4jde k prekro\u010deniu tohto intervalu, tak PHP dok\u00e1\u017ee automaticky konvergova\u0165 \u010d\u00edslo na re\u00e1lny typ. \u010c\u00edsla m\u00f4\u017eu by\u0165 zapisovan\u00e9 ako desiatkov\u00e9, \u0161estn\u00e1stkov\u00e9 alebo osmi\u010dkov\u00e9.<\/p>\n<p><em>Pr\u00edklad:<\/em><\/p>\n<pre> $desiatkove = 16;\r\n $sestnastkove = 0x10;\r\n $osmickove = 020;\r\n echo \"16 v desiatkovej s\u00fastave = $desiatkove&lt;br \/&gt;\";\r\n echo \"0x10 v desiatkovej s\u00fastave = $sestnastkove&lt;br \/&gt;\";\r\n echo \"020 v desiatkovej s\u00fastave = $osmickove\";\r\n<\/pre>\n<p><em>V\u00fdsledok pr\u00edkladu:<\/em><\/p>\n<p>16 v desiatkovej s\u00fastave = 16<br \/>\n0x10 v desiatkovej s\u00fastave = 16<br \/>\n020 v desiatkovej s\u00fastave = 16<strong><br \/>\n<\/strong><\/p>\n<h2>3. Re\u00e1lne \u010d\u00edsla<\/h2>\n<p>Jedn\u00e1 sa o desatinn\u00e9 \u010d\u00edsla. Rozsah odpoved\u00e1 typu\u00a0<em>double<\/em>\u00a0z jazyka C a m\u00f4\u017ee teda nadob\u00fada\u0165 hodnoty v rozsahu od\u00a0<em>1.7E-308<\/em>\u00a0a\u017e\u00a0<em>1.7E308<\/em>. Desatinn\u00e9 \u010d\u00edsla m\u00f4\u017eeme zapisova\u0165 bu\u010f klasicky \u2013 napr.\u00a0<em>0.00015<\/em>\u00a0alebo exponenci\u00e1lne \u2013 napr.\u00a0<em>1.5E-4<\/em>. PHP navy\u0161e dok\u00e1\u017ee pracova\u0165 so skupinou funkci\u00ed, ktor\u00e1 n\u00e1m umo\u017e\u0148uje riadi\u0165 si presnos\u0165 v\u00fdpo\u010dtu. Ide o tzv. Bin\u00e1rny kalkul\u00e1tor (BC). Pokia\u013e chceme pracova\u0165 s ve\u013ekou presnos\u0165ou, doporu\u010dujeme pou\u017ei\u0165 tieto funkcie.<\/p>\n<p><em>Pr\u00edklad:<\/em><\/p>\n<pre> $klasicky_zapis = 0.00015;\r\n $matematicky_zapis = 1.5E-4;\r\n echo \"klasick\u00fd z\u00e1pis: \".$klasicky_zapis;\r\n echo \"matematick\u00fd z\u00e1pis: \".$matematicky_zapis;<\/pre>\n<p><em>V\u00fdsledok pr\u00edkladu:<\/em><br \/>\nklasick\u00fd z\u00e1pis: 0.00015<br \/>\nmatematick\u00fd z\u00e1pis: 0.00015<strong><br \/>\n<\/strong><\/p>\n<h2>4. Pole, asociat\u00edvne pole<\/h2>\n<p>Polia s\u00fa trochu odli\u0161n\u00e9 od premenn\u00fdch. Ich z\u00e1kladn\u00e1 odli\u0161nos\u0165 spo\u010d\u00edva v tom, \u017ee v premenn\u00fdch m\u00f4\u017ee by\u0165 len jedna hodnota a v poliach m\u00f4\u017ee by\u0165 rad hodn\u00f4t. V poliach sa m\u00f4\u017eu taktie\u017e nach\u00e1dza\u0165 premenn\u00e9, \u010d\u00edsla a aj in\u00e9 polia (viacrozmern\u00e9 polia). Polia del\u00edme na\u00a0<strong>indexov\u00e9<\/strong>\u00a0a\u00a0<strong>asociat\u00edvne<\/strong>.<\/p>\n<p>PHP narozdiel od in\u00fdch programovac\u00edch jazykov nekladie tak pr\u00edsne po\u017eiadavky na indexy po\u013ea. T\u00e1to syntaktick\u00e1 benevolencia umo\u017e\u0148uje pou\u017e\u00edva\u0165 za indexy po\u013ea \u013eubovo\u013en\u00e9 \u010d\u00edsla a znakov\u00e9 re\u0165azce. Obvykle sa prvky po\u013ea indexuj\u00fa pomocou \u010d\u00edseln\u00e9ho radu po\u010d\u00ednaj\u00fac nulou. N\u00e1sleduj\u00face \u010dasti k\u00f3du n\u00e1zorne ukazuj\u00fa r\u00f4zne mo\u017enosti z\u00e1pisu priradenia hodn\u00f4t do premenn\u00fdch po\u013ea.<\/p>\n<pre> $x[] = 10;\r\n $x[] = 20;\r\n $x[] = 30;\r\n $x[] = 55;\r\n $x[0] = 10;\r\n $x[1] = 20;\r\n $x[2] = 30;\r\n $x[3] = 55;\r\n $x = Array(10, 20, 30, 40);<\/pre>\n<p>Vo v\u0161etk\u00fdch troch pr\u00edkladoch je v\u00fdsledkom rovnako inicializovan\u00e9 pole\u00a0<em>$x<\/em>.<\/p>\n<p>PHP pozn\u00e1 aj asociat\u00edvne pole, ktor\u00e9ho indexom (k\u013e\u00fa\u010dom) m\u00f4\u017ee by\u0165 \u013eubovo\u013en\u00fd znakov\u00fd re\u0165azec. Prostredn\u00edctvom asociat\u00edvneho po\u013ea m\u00f4\u017eeme napr. \u201eposloven\u010di\u0165\u201c pr\u00edkaz\u00a0<em>Date<\/em>.<\/p>\n<pre> $den[\"Mon\"] = \"Pondelok\";\r\n $den[\"Tue\"] = \"Utorok\";\r\n $den[\"Wed\"] = \"Streda\";\r\n $den[\"Thu\"] = \"\u0160tvrtok\";\r\n $den[\"Fri\"] = \"Piatok\";\r\n $den[\"Sat\"] = \"Sobota\";\r\n $den[\"Sun\"] = \"Nede\u013ea\";<\/pre>\n<pre> $den = Array(\"Mon\" =&gt; \"Pondelok\",\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"Tue\" =&gt; \"Utorok\",\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"Wed\" =&gt; \"Streda\",\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"Thu\" =&gt; \"\u0160tvrtok\",\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"Fri\" =&gt; \"Piatok\",\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"Sat\" =&gt; \"Sobota\",\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"Sun\" =&gt; \"Nede\u013ea\");<\/pre>\n<p>Nasleduj\u00faci pr\u00edkaz u\u017e nevyp\u00ed\u0161e anglick\u00fa skratku d\u0148a v t\u00fd\u017edni, ale jej slovensk\u00fd ekvivalent.<\/p>\n<p><em>Pr\u00edklad:<\/em><\/p>\n<pre>Dnes je &lt;?php echo $den[Date(\"D\")]; ?&gt;, to je ale pekn\u00fd de\u0148.\r\n<\/pre>\n<p><em>V\u00fdsledok pr\u00edkladu:<\/em><\/p>\n<p>Dnes je \u0160tvrtok, to je ale pekn\u00fd de\u0148.<strong><br \/>\n<\/strong><\/p>\n<h2>5. Booleovsk\u00e9 premenn\u00e9<\/h2>\n<p>Ka\u017ed\u00e1 premenn\u00e1 m\u00e1 z\u00e1rove\u0148 priraden\u00fa booleovsk\u00fa hodnotu (<em>true<\/em>\u00a0alebo\u00a0<em>false<\/em>). T\u00e1to hodnota sa pou\u017e\u00edva napr\u00edklad pri pr\u00edkaze\u00a0<em>if<\/em>\u00a0alebo\u00a0<em>for<\/em>. Booleovsk\u00e1 hodnota sa riadi t\u00fdmito pravidlami:<\/p>\n<ul>\n<li>pri cel\u00fdch a re\u00e1lnych \u010d\u00edslach: ak je hodnota nula =\u00a0<em>false<\/em>, inak v\u017edy\u00a0<em>true<\/em><\/li>\n<li>pri re\u0165azci: ak je pr\u00e1zdny znak =\u00a0<em>false<\/em>, inak v\u017edy\u00a0<em>true<\/em><\/li>\n<li>pole: ak je pole pr\u00e1zdne =\u00a0<em>false<\/em>, inak v\u017edy\u00a0<em>true<\/em><\/li>\n<\/ul>\n<h2>6. Kon\u0161tanty<\/h2>\n<p>Premenn\u00e9 uchov\u00e1vaj\u00fa svoju hodnotu do\u010dasne, ale kon\u0161tanty si ju udr\u017eiavaj\u00fa po\u010das procesu cel\u00e9ho skriptu. Hodnota kon\u0161tanty je nezmenite\u013en\u00e1. Z\u00e1kladn\u00e1 syntax je v celku jednoduch\u00e1 rovnako ako bolo u premenn\u00fdch. Zapisuje sa ako\u00a0<em>define()<\/em>. Hodnota sa teraz ale neprira\u010fuje pomocou \u201e<em>=<\/em>\u201e, ale iba pomocou tak\u00e9hoto z\u00e1pisu:<\/p>\n<p><em>Pr\u00edklad:<\/em><\/p>\n<pre> define(\"ZAKLAD\",\"kon\u0161tanta\");\r\n echo \"Toto je \".ZAKLAD.\".\";\r\n<\/pre>\n<p><em>V\u00fdsledok pr\u00edkladu:<\/em><\/p>\n<p>Toto je kon\u0161tanta.<\/p>\n<p>Kon\u0161tanty sa daj\u00fa pou\u017ei\u0165 napr, pri pr\u00e1ci s jazykovou mut\u00e1ciou str\u00e1nky. Je len na v\u00e1s ako ich vyu\u017eijete.<\/p>\n<p><strong>Preddeklarovan\u00e9 kon\u0161tanty<\/strong><\/p>\n<p>Php obsahuje niektor\u00e9 preddeklarovan\u00e9 kon\u0161tanty.\u00a0<em>TRUE<\/em>\u00a0(pravda) a\u00a0<em>FALSE<\/em>\u00a0(nepravda) s\u00fa preddefinovan\u00e9 s hodnotami\u00a0<em>1<\/em>\u00a0pre\u00a0<em>TRUE<\/em>\u00a0a\u00a0<em>0<\/em>\u00a0alebo pr\u00e1zdny re\u0165azec pre\u00a0<em>FALSE<\/em>. Kon\u0161tanta\u00a0<em>PHP_VERSION<\/em>\u00a0indikuje pou\u017e\u00edvan\u00fa verziu PHP. Kon\u0161tanta\u00a0<em>PHP_OS<\/em>\u00a0indikuje opera\u010dn\u00fd syst\u00e9m servera.<\/p>\n<p><em>Pr\u00edklad:<\/em><\/p>\n<pre>  echo PHP_VERSION;\r\n  echo PHP_OS;\r\n<\/pre>\n<p><em>V\u00fdsledok pr\u00edkladu:<\/em><\/p>\n<p>5.3.18 Linux<\/p>\n<p><em>__FILE__<\/em>\u00a0a\u00a0<em>__LINE__<\/em>\u00a0obsahuj\u00fa n\u00e1zov spracov\u00e1van\u00e9ho skriptu a aktu\u00e1lne \u010d\u00edslo riadku skriptu.<\/p>\n<p><em>Pr\u00edklad:<\/em><\/p>\n<pre> echo __FILE__;\r\n echo __LINE__;\r\n<\/pre>\n<p><em>V\u00fdsledok pr\u00edkladu:<\/em><\/p>\n<p>\/nfs1\/cirka\/vyuka\/php\/kap3.php<br \/>\n447<\/p>\n<p>PHP tie\u017e zahr\u0148uje kon\u0161tanty pre hl\u00e1senie ch\u00fdb:<\/p>\n<p><em>Pr\u00edklad:<\/em><\/p>\n<pre> echo E_ERROR;\r\n echo E_WARNING;\r\n echo E_PARSE;\r\n echo E_NOTICE;\r\n<\/pre>\n<p><em>V\u00fdsledok pr\u00edkladu:<\/em><\/p>\n<p>1<br \/>\n2<br \/>\n4<br \/>\n8<strong><br \/>\n<\/strong><\/p>\n<h2>7. Rozsah platnosti premenn\u00fdch<\/h2>\n<p>Ak je premenn\u00e1 deklarovan\u00e1 v hlavnej \u010dasti k\u00f3du (nie vo funkcii alebo triede), potom m\u00e1 glob\u00e1lnu platnos\u0165. To znamen\u00e1, \u017ee jej hodnota plat\u00ed pre cel\u00fd dokument. Premenn\u00e1 deklarovan\u00e1 vo funkcii alebo triede plat\u00ed iba na tejto \u201e\u010dasti\u201c. Aby platila v celom dokumente je treba ju deklarova\u0165 pomocou slova\u00a0<em>global<\/em>\u00a0v danej funkcii. Ako alternat\u00edvny mechanizmus sa tie\u017e m\u00f4\u017ee pou\u017ei\u0165 premenn\u00e1\u00a0<em>$GLOBALS[\u201enazov\u201c]<\/em>.<\/p>\n<p><em>Pr\u00edklad:<\/em><\/p>\n<pre>&lt;?php\r\n function suma($a,$b)\r\n {\r\n global $c; \/\/ alebo $GLOBALS[\"c\"] = 15;\r\n $c = $a+$b;\r\n $d = $c;\r\n }\r\n $a = 5;\r\n $b = 8;\r\n echo suma($a,$b);\r\n echo \"Zadan\u00e9 \u010d\u00edsla s\u00fa $a a $b. Ich s\u00fa\u010det je $c &lt;br \/&gt;\";\r\n echo \"Premenn\u00e1 d bola definovana vo vn\u00fatri funkcie,\r\n \u00a0\u00a0\u00a0\u00a0 preto mimo funkcie m\u00e1 hodnotu: $d\";\r\n ?&gt;\r\n<\/pre>\n<p><em>V\u00fdsledok pr\u00edkladu:<\/em><\/p>\n<p>Zadan\u00e9 \u010d\u00edsla s\u00fa 5 a 8. Ich s\u00fa\u010det je 13<br \/>\nPremenn\u00e1 d bola definovana vo vn\u00fatri funkcie,<\/p>\n<p>preto mimo funkcie m\u00e1 hodnotu:<\/p>\n<p>Tento pr\u00edklad ukazuje ako sa s glob\u00e1lnymi premenn\u00fdmi pracuje. Pokia\u013e budeme napr\u00edklad v nejakej funkcii deklarova\u0165 nov\u00fa premenn\u00fa a chceme ju nesk\u00f4r pou\u017ei\u0165 v inej funkcii, mus\u00edme ju deklarova\u0165 ako\u00a0<strong>glob\u00e1lnu<\/strong>. Keby sme ju tak nedeklarovali, tak v inej funkcii u\u017e premenn\u00e1 (premenn\u00e1\u00a0<em>$d<\/em>\u00a0v predch\u00e1dzaj\u00facom pr\u00edklade) nebude existova\u0165 s platnou hodnotou.<strong><br \/>\n<\/strong><\/p>\n<h2>8. Dynamick\u00e9 premenn\u00e9<\/h2>\n<p>PHP podporuje dynamick\u00e9 premenn\u00e9. Pri dynamick\u00fdch premenn\u00fdch je dynamick\u00fd n\u00e1zov premennej. V praxi sa pou\u017e\u00edvaj\u00fa m\u00e1lo<\/p>\n<p><em>Pr\u00edklad:<\/em><\/p>\n<pre>&lt;?php\r\n $_pole = \"ProduktID\";\r\n $$_pole = \"432BB\";\r\n echo $ProduktID.\"\\n\";\r\n echo $$_pole;\r\n ?&gt;<\/pre>\n<p>Prv\u00fd riadok k\u00f3du vytv\u00e1ra re\u0165azcov\u00fa premenn\u00fa s n\u00e1zvom\u00a0<em>$_pole<\/em>\u00a0a priraduje jej hodnotu\u00a0<em>ProduktID<\/em>. Druh\u00fd riadok pou\u017e\u00edva hodnotu prvej premennej pre vytvorenie n\u00e1zvu druhej premennej.<\/p>\n<p><em>V\u00fdsledok pr\u00edkladu:<\/em><\/p>\n<p>432BB<br \/>\n432BB<strong><br \/>\n<\/strong><\/p>\n<h2>9. Konverzia re\u0165azcov a automatick\u00e9 pretypovanie<\/h2>\n<p>V PHP nie je nutn\u00e9 uv\u00e1dza\u0165 o ak\u00fd d\u00e1tov\u00fd typ premennej sa jedn\u00e1. Pri prvom pou\u017eit\u00ed je premenn\u00e1 priraden\u00e1 automaticky. Premenn\u00e9 mo\u017eno pretypova\u0165 v \u0161tyle jakyka C. Preh\u013ead oper\u00e1torov na pretypovanie:<\/p>\n<table>\n<thead>\n<tr>\n<td width=\"213\"><strong>Oper\u00e1tor<\/strong><\/td>\n<td width=\"164\"><strong>Opis<\/strong><\/td>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td width=\"213\"><strong>pretypovanie na cel\u00e9 \u010d\u00edslo<\/strong><\/td>\n<td width=\"164\">(int), (integer)<\/td>\n<\/tr>\n<tr>\n<td width=\"213\"><strong>pretypovanie na re\u00e1ln\u00e9 \u010d\u00edslo<\/strong><\/td>\n<td width=\"164\">(real), (double), (float)<\/td>\n<\/tr>\n<tr>\n<td width=\"213\"><strong>pretypovanie na re\u0165azec<\/strong><\/td>\n<td width=\"164\">(string)<\/td>\n<\/tr>\n<tr>\n<td width=\"213\"><strong>pretypovanie na pole<\/strong><\/td>\n<td width=\"164\">(array)<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Pokia\u013e vykon\u00e1vame \u010d\u00edseln\u00e9 oper\u00e1cie s re\u0165azcom, PHP vyhodnot\u00ed re\u0165azec ako \u010d\u00edslo. To sa naz\u00fdva\u00a0<strong>konverzia re\u0165azca<\/strong>, aj ke\u010f sa obsah premennej obsahuj\u00facej re\u0165azec nemus\u00ed nutne zmeni\u0165.<\/p>\n<p><em>Pr\u00edklad:<\/em><\/p>\n<pre> $str = \"81237 Bratislava\";\r\n $x = 3 + $str;\r\n echo $x;\r\n echo $str;\r\n<\/pre>\n<p><em>V\u00fdsledok pr\u00edkladu:<\/em><\/p>\n<p>81240<br \/>\n81237 Bratislava<\/p>\n<p>Re\u0165azec\u00a0<em>$str<\/em>\u00a0je pre potreby v\u00fdpo\u010dtu vyhodnoten\u00fd ako cel\u00e9 \u010d\u00edslo\u00a0<em>81237<\/em>, ale premenn\u00e1\u00a0<em>$str<\/em>\u00a0zost\u00e1va nezmenen\u00e1.<\/p>\n<p>Konverzia sa riadi pod\u013ea nasleduj\u00facich pravidiel:<\/p>\n<ul>\n<li>Ako \u010d\u00edslo je vyhodnoten\u00fd iba za\u010diatok re\u0165azca. Re\u0165azec za\u010d\u00ednaj\u00faci in\u00fdm znakom ako \u010d\u00edslo je vyhodnoten\u00fd ako\u00a0<em>0<\/em>.<\/li>\n<\/ul>\n<ul>\n<li>\u201e3rd degree\u201c \u00bb 3<\/li>\n<li>\u201edegree 3rd\u201c \u00bb 0<\/li>\n<li>\u201e-3.4\u201c\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00bb -3.4<\/li>\n<li>\u201e4.2 degree\u201c \u00bb 4<\/li>\n<\/ul>\n<ul>\n<li>Re\u0165azec je vyhodnoten\u00fd ako desatinn\u00e9 \u010d\u00edslo iba v pr\u00edpade, \u017ee desatinn\u00e1 hodnota zaber\u00e1 cel\u00fd re\u0165azec, inak je vyhodnoten\u00fd ako cel\u00e9 \u010d\u00edslo.<\/li>\n<\/ul>\n<p>Okrem konverzie re\u0165azcov PHP vykon\u00e1va aj pretypovanie medzi dvoma numerick\u00fdmi typmi.<\/p>\n<p><em>Pr\u00edklad:<\/em><\/p>\n<pre> $a = 1;\r\n $b = 1.1;\r\n $c = $a + $b;\r\n $d = $c + \"6th\";\r\n echo $c;\r\n echo $d;\r\n<\/pre>\n<p><em>V\u00fdsledok pr\u00edkladu:<\/em><\/p>\n<p>2.1<br \/>\n8.1<\/p>\n<p><em>Pr\u00edklad:<\/em><em>\u00a0explicitn\u00e9 pretypovanie<\/em><\/p>\n<pre> echo $a = 11.2;\r\n echo $b = (int) $a;\r\n echo $c = (double) $a;\r\n echo $d = (string) $a;\r\n<\/pre>\n<p><em>V\u00fdsledok pr\u00edkladu:<\/em><\/p>\n<p>11.2<br \/>\n11<br \/>\n11.2<br \/>\n11.2<\/p>\n<p>V PHP sa m\u00f4\u017eu tie\u017e pou\u017ei\u0165 nasleduj\u00face funkcie, ktor\u00e9 n\u00e1m m\u00f4\u017eu pom\u00f4c\u0165 identifikova\u0165 typ premennej.<\/p>\n<table width=\"676\">\n<thead>\n<tr>\n<td><strong>Funkcia<\/strong><\/td>\n<td><strong>Opis<\/strong><\/td>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>gettype($premenna)<\/td>\n<td><strong>vyp\u00ed\u0161e typ premennej<\/strong><\/td>\n<\/tr>\n<tr>\n<td>is_integer($premenna)<\/td>\n<td><strong>zis\u0165uje \u010di je premenn\u00e1 typu integer<\/strong><\/td>\n<\/tr>\n<tr>\n<td>is_double($premenna)<\/td>\n<td><strong>zis\u0165uje \u010di je premenn\u00e1 typu double<\/strong><\/td>\n<\/tr>\n<tr>\n<td>is_string($premenna)<\/td>\n<td><strong>zis\u0165uje \u010di je premenn\u00e1 typu re\u0165azec<\/strong><\/td>\n<\/tr>\n<tr>\n<td>is_array($premenna)<\/td>\n<td><strong>zis\u0165uje \u010di je premenn\u00e1 typu pole<\/strong><\/td>\n<\/tr>\n<tr>\n<td>is_object($premenna)<\/td>\n<td><strong>zis\u0165uje \u010di je premenn\u00e1 typu objekt<\/strong><\/td>\n<\/tr>\n<tr>\n<td>settype($premenna,typ2)<\/td>\n<td><strong>zmen\u00ed typ premennej na typ2<\/strong><\/td>\n<\/tr>\n<tr>\n<td>count($pole)<\/td>\n<td><strong>zis\u0165uje po\u010det prvku v poli<\/strong><\/td>\n<\/tr>\n<tr>\n<td>reset($pole)<\/td>\n<td><strong>presunie ukazate\u013e na prv\u00fd index po\u013ea<\/strong><\/td>\n<\/tr>\n<tr>\n<td>current($pole)<\/td>\n<td><strong>vyp\u00ed\u0161e hodnotu aktu\u00e1lneho prvku po\u013ea<\/strong><\/td>\n<\/tr>\n<tr>\n<td>next($pole)<\/td>\n<td><strong>vyp\u00ed\u0161e hodnotu nasleduj\u00edc\u00faho po\u013ea<\/strong><\/td>\n<\/tr>\n<tr>\n<td>key($pole)<\/td>\n<td><strong>vyp\u00ed\u0161e index aktu\u00e1lneho prvku po\u013ea<\/strong><\/td>\n<\/tr>\n<tr>\n<td>list($pole)<\/td>\n<td><strong>vlo\u017e\u00ed do premenn\u00fdch prvky po\u013ea<\/strong><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n","protected":false},"excerpt":{"rendered":"<p>V\u0161etky premenn\u00e9 v jazyku PHP za\u010d\u00ednaj\u00fa symbolom dol\u00e1ra ($). Pod\u013ea toho server pozn\u00e1, \u017ee ide o premenn\u00fa a tak s \u0148ou bude tie\u017e nar\u00e1ba\u0165. Za t\u00fdmto symbolom m\u00f4\u017ee nasledova\u0165 len p\u00edsmeno alebo podtrhovn\u00edk. Potom u\u017e m\u00f4\u017ee nasledova\u0165 \u010d\u00edslica, p\u00edsmeno alebo podtrhovn\u00edk. Ve\u013ek\u00fdm zjednodu\u0161en\u00edm jazyka PHP je to, \u017ee sa premenn\u00e9 nemusia explicitne deklarova\u0165. To znamen\u00e1, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-336","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/gdm.sosthe.sk\/index.php?rest_route=\/wp\/v2\/pages\/336","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gdm.sosthe.sk\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/gdm.sosthe.sk\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/gdm.sosthe.sk\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gdm.sosthe.sk\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=336"}],"version-history":[{"count":2,"href":"https:\/\/gdm.sosthe.sk\/index.php?rest_route=\/wp\/v2\/pages\/336\/revisions"}],"predecessor-version":[{"id":338,"href":"https:\/\/gdm.sosthe.sk\/index.php?rest_route=\/wp\/v2\/pages\/336\/revisions\/338"}],"wp:attachment":[{"href":"https:\/\/gdm.sosthe.sk\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=336"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}