php lekcia25
|
24.12.2008 20:26
Vladimír Čamaj
|
Prosím vás, chcem sa spýtať, len takú drobnosť.
Toto je časť kódu:"<?echo $_POST["email"]?>">
Neviem, či pri email musia byť úvodzovky.
Lebo keď sa definujú asociované polia vtedy sa ta myslím nedávajú. |
|
|
Re: php lekcia25
|
28.12.2008 21:39
P.B.
|
ne spravny zapis je:
<?= $_POST['email']; ?>
|
|
|
Re: php lekcia25
|
29.12.2008 02:02
Aleš Hakl
|
Nic jako spravny zapis neexistuje.
Kolem PHP je takova jakasi fama, ze mezi pouzitim '' a "" je nejaky obrovsky vykonnostni rozdil, prakticky poznatek podporeny merenim je, ze neni. A ohledne prehlednosti kodu si clovek zas az tak moc nepomuze, protoze ono to bude neprehledne vzdy.
Jinak uzasna vlastnost toho jazyka je, ze token ktery nema zadny jiny vyznam se chape jako retezcovy literal (myslim, ze radeji nechci vedet proc), takze i to $_POST[email] by pravdepodobne fungovalo.
A ohledne toho rovnase je to otazka stylu, me to tedy prijde strasne. |
|
|
Re: php lekcia25
|
29.12.2008 12:27
Tomáš Kavalek
|
Priste radeji nemlzte! Je mozne pouzit jak ' (apostrof) tak i " (uvozovky), vzdy v paru samozrejme. Nekteri programatori s oblibou a radeji pouzivaji apostrofy, nebot pak nemusi pouzivat escapovani uvozovek, napr. pri generovani html parametru jednotlivych tagu. Zapis <?= se jiz delsi dobu nedoporucuje, tedy nepouziva a bezpecnejsi servery vicemene ani tuto moznost nepodporuji, protoze nepodporuji oteviraci tag ve zkracene forme, tedy <?, ale je nutne pouzit <?php. Takze zaverem, je mozne pouzit jak ' tak i ", ale vzdy pouzijeme k vypisu obsahu promenne echo, pripadne printf, nebo jinou funkci, ale ne vyse uvedeny zapis. |
|
|
Re: php lekcia25
|
29.12.2008 12:30
Tomáš Kavalek
|
Jo, Alesi, aby sis nemyslel, to bylo pro P.B., s tebou souhlasim. |
|
|
Re: php lekcia25
|
29.12.2008 14:34
Vladimír Čamaj
|
Apostrofy, či úvodzovky chápem. Nechápem, prečo je premenná email v úvodzovkách.
Možno je to tým, že nechápem čo je token. Wikipédia toho moc neprezradila.
Začiatočníci budú hold vždy dávať takéto otázky. Vďaka za reakcie. |
|
|
Re: php lekcia25
|
29.12.2008 20:10
Aleš Hakl
|
Jde o to, ze email neni promenna, ale index do pole $_POST. |
|
|
|
Re: php lekcia25
|
30.12.2008 17:56
Tomáš Kavalek
|
Tam jde o to, ze by to bez uvozovek a apostrofu mohlo byt brano spise nez klic do pole, jako konstanta definovana pres define() . Priklad:
<?php
define('klic', 'mail');
echo($_POST[klic]); // Vypise obsah promenne mail poslane POSTem
// ^-- Zde vyuzito konstanty
echo($_POST['mail']); // Opet vypise obsah promenne mail poslane POSTem
?>
|
|
|
Re: php lekcia25
|
31.12.2008 16:20
Vladimír Čamaj
|
Takže ak to správne chápem PHP rozoznáva konštantu [mail] a premennú, alebo teda index pola ['mail']. |
|
|
Re: php lekcia25
|
31.12.2008 20:31
Aleš Hakl
|
Ty hranate zavorky s tim nijak moc zajimave nesouvisi. Hranate zavorky jsou proste operator indexace pole ("pristupu do pole") to co je uvnitr je vyraz urcujici kam do pole se saha a to co je od zavorek nalevo je to samotne pole (co to presne znamena "samotne pole" je na jinou diskuzi, PHP je proste zvlastni...).
Ve vasem pripade se ona jedina promenna jmenuje $_POST a jeji hodnotou je asociativni pole, ktere mozna obsahuje prvek jmenem 'mail', pokud se k tomuto prvku chcete dostat pouzijete zapis $_POST[ neco co se vyhodnoti na 'mail' ]. Pricemz roli "neceho co se vyhodnoti jako 'mail'" celkem dobre zastupuje zapis 'mail', coz je proste retezcovy literal s hodnotou 'mail'.
Situaci ponekud kompilkuje to, ze PHP ma minimalne tri ruzne syntaxe retezcovych literalu.
Text v apostrofech je retezcovy literal jehoz hodnotou je presne to, co je v onech apostrofech.
Text v uvozovkach syntakticky vypada podobne, nicmene to co je mezi uvozovkami se dale zpracovava a konecnym vysledkem tohoto zpracovani nemusi byt tak uplne literal, ale i pomerne komplikovany vyraz.
A konecne, jen tak volne umisteny token ("slovo", "znaky za sebou bez mezer") se chape jako reference na konstantu. Ovsem hodnotou konstanty, ktera neni definovana je jeji nazev jako retezec. Pokud tedy nemate konstantu jmenem email tak mail a 'mail' je totez.
Realita je, ze syntaxe PHP je zvlastni a diky tomu funguji veci, ktere by fungovat vubec nemely, jako treba $_POST[mail]. |
|
|
Re: php lekcia25
|
1.1.2009 14:41
P.B.
|
no to jsem se snazil rici .... :) |
|
|
Re: php lekcia25
|
1.1.2009 14:39
P.B.
|
Mel jsem na mysli to <?echo ze ma byt <?= pripadne kdyz uz se vam nelibi zkrazeby zapis tak <?php echo( ale urcite ne <?echo
Navic se mi zda vypisovat <?= promena jednak rychlejsi a jednak prehlednejsi nez tam rvat echo
Co se tyce ' a " tak tam mi prijde logicke " davat jako oddelovac textu a ' jako uvozeni klice v poli. Vicemene jde o styl zapisu ale pokud se to dela takto je to prehlednejsi. |
|
|
Re: php lekcia25
|
2.1.2009 10:01
Vladimír Čamaj
|
No takže vrúcna vďaka Alešovi Haklovi, za obšírne vysvetlenie.
O PHP som čítal niekoľko odstrašujúcich článkov a o jeho nedokonalostiach viac-menej viem. No môj hlavný problém spočíva myslím najmä v tom, že je tu dosť akýchsi alternatívnych zápisov a keď narazím na nejaký nový zápis mám v tom chaos. |
|
|
Re: php lekcia25
|
2.1.2009 10:14
Vladimír Čamaj
|
Predsa len mi nedá a ak môžem ešte sa spýtam raz na to isté:
Ak teda [ znamená index poľa logicky by tam tie úvodzovky nemuseli byť nie a bolo by to syntakticky ako pri deklarácii poľa, kde sa indexom úvodzovky nedávajú. Jedine, že by [] mali ešte iný význam o ktorom ja zelenáč ešte netuším. Ešte raz vďaka a pekný deň! |
|
|
|
|
KOMENTARZE
|
Tylko zarejestrowani użytkownicy mogą dopisywać komentarze.
|
|
Szukanie oprogramowania
|