PHP pre začiatočníkov - Funkcie, 8.diel
PHP pre začiatočníkov - Funkcie, 8.diel
Definícia vlastných funkcií v php patrí ku každodennej praxi, ak chcete vedieť
syntax zápisu vlastnej funkcie, tak nieje nič jednoduchšie ako jej samotná
definícia. Všetko o tvorbe vlastných funkcií sa dozviete v tejto časti.
Jazyk php obsahuje množstvo užitočných funkcií, ktoré sú ľahko využiteľné, ak však v našom kóde chceme použiť funkciu, ktorá by nám spracovala požadovaný skript podľa našich predstáv, tak použijeme funkciu function(). Je to veľmi nápomocná funkcia pomocou ktorej si mi môžeme definovať svoju vlastnú funkciu (hotové funkcie v jazyku php sú napr.: echo(), date(), empty()...atď.). Základná syntax zápisu vlastnej funkcie je nasledovná:
Zápis funkcie má ešte jednu možnú variantu a to je varianta zo zápisom argumentov. Jej syntax sa neodlišuje veľmi významne ale ak typujete, že argumety sa zapisujú do zátvorky tak typujete správne. Argumety vo funkcií majú nasledovnú syntax:
Po zadaní mena a priezviska sa nám vypíše meno a aj priezvisko zadané do formulára. Toto by bolo asi o funkciách všetko a ukončujem túto časť.
V ďalšom diele si niečo povieme o cykloch for a while.
function nazov_funkcie() { telo funkcie }Použitie v praxi je veľmi nápomocné a využijete túto funkciu v každom väčšom skripte. Využitie funkcie si môžeme ukázať v názornom príklade.
<?php function napis() { $skript = "funkcia napis()"; echo "Toto je $skript"; } echo napis(); ?>Zadefinovali sme si vlastnú funkciu a nižšie vidíte jej využitie. Skript mám vypíše nasledujúci výsledok "Toto je funkcia napis()". Prezrieť si to môžete tu.
Zápis funkcie má ešte jednu možnú variantu a to je varianta zo zápisom argumentov. Jej syntax sa neodlišuje veľmi významne ale ak typujete, že argumety sa zapisujú do zátvorky tak typujete správne. Argumety vo funkcií majú nasledovnú syntax:
function nazov_funkcie(argument, argument2) { telo funkcie }Argumenty môžu mať významnú funkciu a odporúčam ich použiť aj kvôli predchádzaniu chybových hlásení. Funkcie argumenty primajú, tak ako je to napr. u funkcie echo, ktorá príma vami zadaný text. Počet argumentov je ľubovoľný čiže ich môžeme zapísať koľko chceme. Argumenty sa nazývajú tiež aj parametre, tak sa netreba zmiasť. Teraz si napíšeme malý skript, ktorý bude vyžadovať odoslanie argumetov cez formulár.
<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post"> <input type="text" name="meno" /> <input type="text" name="priezvisko" /> <input type="submit" name="odoslat" value="Odoslať" /> </form> <?php function napis($meno, $priezvisko){ echo "$meno "; echo "$priezvisko "; } if (isset($_POST["odoslat"])){ echo napis($meno, $priezvisko); } ?>Máte sami možnosť vidieť príjem informácií s argumentu a všetko čo som napísal v tomto skripte si môžeme prezrieť v tomto hotovom príklade. Kliknite tu.
Po zadaní mena a priezviska sa nám vypíše meno a aj priezvisko zadané do formulára. Toto by bolo asi o funkciách všetko a ukončujem túto časť.
V ďalšom diele si niečo povieme o cykloch for a while.
Autor: PaBi3 ·
Kategória: Programovanie ·
Dátum: 30.04.2005 17:23
Komentáre
function nazov_funkcie(argument_1, ..., argument_n) {telo funkcie}
no ale ja verim, ze jste to pochopili spravne, ze nemate jen dve promenne ve volani funkce, takze je vsechno v poradku. Nakonec, uz nejste zadni zacatecnici a sami vite, ze lze predavat cokoliv (tedy "relativne" cokoliv
BTW PaBi3, dalsi veci uz radeji zacatecniky neuc, to by si kazdy napsal svuj RS a skvely phpRS by uz nikdo nechtel..
jen tak dal.. drzim palce..
Chcel by som jednu radu, ak je to mozne, ohladom funkcii.
Chcem sa pri PHP naucit viac pouzivat funkcie. Narazil som vsak na jeden problem s ktorym si neviem dat rady.
v php subore volam funkciu s parametrom nazvu tabulky:
$rows = FX_SQL_pocet (table);
Vo funkcii vykonam vypocet riadkov v tabulke:
function FX_SQL_pocet ($table) {
require_once("config/db_config.php"); // napojenie na DB a definovanie predpony a pripony k tabulke.
$pocet = mysql_num_rows(mysql_query("SELECT * FROM ".$predpona.$table.$pripona.""));
mysql_close();
return $pocet;
}
Problem nastava ak dotaz cez funkciu zopakujem viackrat za sebou hoc aj s inymi parametrom tabulky.
$rows = FX_SQL_pocet (table);
echo "rows =".$rows;
$mnozstvo = FX_SQL_pocet (table_names);
echo "mnozstvo =".$mnozstvo;
Prvykrat mi rows dotaz urobi ale druhykrat, tretikrat uz nie.
Funcia nevykona dotaz na DB.
Zrejme to bude len nejake hlupost zaciatocnika v PHP. Vedel by mi niekto s tym pomoct?