PHP pre začiatočníkov - Polia, 5.diel
PHP pre začiatočníkov - Polia, 5.diel
<?
$pole = array ("PHP","MySQL","Apache");
echo "{$pole["0"]}<br />";
echo "{$pole["1"]}<br />";
echo "{$pole["2"]}<br />";
?>
alebo aj takto:
<?
$pole[] = "PHP";
$pole[] = "MySQL";
$pole[] = "Apache";
// môžu byť aj s číslami ako $pole["0"], $pole["1"] a pod.
echo "{$pole["0"]}<br />";
echo "{$pole["1"]}<br />";
echo "{$pole["2"]}<br />";
?>
Ste práve svedkom príkladu, ktorý využíva indexové pole. Máte možnosť si všimnúť aj spomínané indexovanie od nuly. Pole zapisujeme podobne ako premennú ale pred ňu si zapíšeme array aby sme vedeli, že ide o pole a aby to samozrejme vedel aj jazyk php. Keď zapisujeme pole do príkazu echo, tak si určite musíte všimnúť, že sa zapisujú do týchto znakov {} resp. takto {$pole["0"]}. Druhý príklad je rovanký len sme pole rozdelili. Toto je ukážka asociatívnych polí:
<?
$pole["PHP"] = "PHP: Hypertext Preprocessor";
$pole["MySQL"] = "Structured Query Language";
$pole["Apache"] = "Open source Web server";
echo "Skratka PHP znamená {$pole["PHP"]}<br />";
echo "Skratka MySQL znamená {$pole["MySQL"]}<br />";
echo "Skratka Apache znamená {$pole["Apache"]}<br />";
?>
Ako máte sami možnosť vidieť, tak asociatívne polia využívajú k svojej správnej funkcií ako kľúč reťazce a nie číslice. Polia sú čiastočne prerobiteľné a to tak, že ich môžete indexovať od jednotky a nie od nuly. Je to dosiahnuteľné potom ako pred indexované pole vložíme takýto dotaz:
<?
$pole = array (1 => "PHP","MySQL","Apache");
echo "{$pole["1"]}<br />";
echo "{$pole["2"]}<br />";
echo "{$pole["3"]}<br />";
?>
Možno si budete myslieť, že "prerobenie" je dosť tvrdý výraz pre takúto drobnú úpravu. Mohli by sme polia indexovať taktiež aj od 5 alebo od 100. Je tu aj plno iných možností a je to len na vás akú si vy zvolíte. Máte možnosť vidieť, že pred array sme vložili 1 a za ňou nasledoval tento znak =>.
Od verzie PHP v4.1 boli implementované aj tzv. "Superglobálne polia.". Tieto polia majú oproti bežným jednu veľkú výhodu a to je bezpečnosť. Hodnotu, ktorú pole odosiela poznáme a vieme odkiaľ je. Poznáme mnoho druhov superglobálnych polí a medzi ne patria aj $_GET a $_POST. Ako príklad využitia si môžete zobrať aj formuláre do ktorých sa hodnota odosiela. Cez $_GET sa nám odoslaná hodnota vypíše v prehliadači tam kde zadávame adresu a to znamená, že sa ukladá aj do histórie. Preto veľmi neodporúčam využívať tento typ pre heslá užívateľov. Pri $_POST nevidíte ako sa odosiela hodnota a ani sa neukladá do histórie. Ukladanie a odosielanie hesiel ešte nepatrí do tejto časti. Polí je mnoho a dostaneme sa k nim v budúcich dieloch.
Ako príklad použitia polí môžem uviesť aj malý formulár. Poviete si "len formulár už nie", ale je to tak. Je to najjednoduchší príklad aký pre začiatočníka môžem uviesť. Ako prvé si napíšeme celý zdrojový kód formuláru a potom si už len všetko vysvetlíme. Prvý súbor sa bude volať - "index.php":
<form action="form.php" method="get"> <input name="text" type="text" /> <input type="submit" value="Odoslať hodnotu." /> </form>
Druhý súbor "form.php" bude príjmať hodnoty od "index.php":
<?php
if(isset($_GET["text"])){
echo $text;
}
?>
Súbor "index.php" neobsahuje žiadny kód php. Obsahuje len čistý formulár, ktorý je nastavený nasledovne: v tagu form máme zapísané dve veci a to action="" a method="". Action nám zaistí odoslanie hodnôt do súboru "form.php" Ďalej tu máme method. Ako už bolo spomínané pri superglobálnych poliach, tak aj tu máme niečo podobné. My sme nastavili method na GET, čo znamená, že tam kde v prehliadači zadávame URL adresu bude teraz zadaná naša hodnota, ktorú sme napísali do formuláru a odoslali. Zapísaná bude takto: form.php?text=PaBi3. Samozrejme iba ak sme zadali text "PaBi3". Ak by sme zadali method na "post", tak by nám vyšlo toto: form.php. A ďalej nič.
Druhý súbor je celý v php a nepotrebuje ani veľmi zložité vysvetlenie ale toto je časť venovaná poliam takže sme použili už spomínané superglobálne pole $_GET. $_GET slúži podobne ako aj method resp. superglobálne polia sú založené na podobnej báze. Tiež si to celé môžeme preložiť do slovenčiny a zistíme, že nám výde toto: ak(jenastavené($_získaj["text"])) napíš $text. Je to pochopiteľné už len z názvu. Celkom jednoduché tak ako minule :-). Toto by bolo k poliam asi všetko.


![Hlasová verzia [Pre internetový prehliadač Opera] Voice](modules/items/voice.png)
Komentáre