A PHP programot karakterekkel fejezzük be.
A kettő közzé kerülnek a kódjaink. Lentebb látni fogjuk, hogy egy .html kiterjesztésű
fájlba is beágyazható a php kód.
Ha csak PHP kódot írunk (nem HTML-be ágyazott PHP), akkor megengedett a záró rész elhagyása:
Ezt megoldást sokak alapszabálynak tekintik, mások vitatják, merthogy mindent le kell zárni.
===== Megjegyzések =====
A programkódunkba megjegyzéseket tehetünk magunknak vagy más programozóknak.
Ezeket a PHP értelmező nem dolgozza fel. A megjegyzések lehetnek egy
vagy több sorosak.
Több soros:
/* több
soros
megjegyzés
*/
Egysoros:
//egysoros megjegyzés
Másik egysoros:
# egysoros megjegyzés
A megjegyzések, utasítások után is írhatók:
Megjegyzés beágyazása utasításba:
echo(3 * /* köztes megjegyzés */ 6);
===== Kiíratás =====
echo "Szöveg";
print "Szöveg";
Ha idézőjelek, vagy aposztrófok nélkül írunk számokat az echo vagy a print után,
az gond nélkül kiírathatók.
echo 45;
print 35;
Az echo és a print használható zárójellel is.
echo(45);
echo("Helló Világ");
print("45");
Az echo és print ugyanúgy működik, a különbség még az, hogy amíg az
echo utasításnak nincs visszatérési értéke, a print utasításnak van.
==== Kifejezések ====
Minden kifejezés amit leírsz. Pontosabban: valami, aminek értéke van.
Ha van egy változónk önmagában (mint az alábbi példában az egyenlőség
jel jobb oldalán), akkor persze nem szoktuk kifejezésként említeni:
$eredmeny = $szam;
De ha vannak körülötte operátorok is, akkor már igen:
$eredmeny = ++$szam;
$eredmeny = $szam + 2;
Azt mondhatjuk az egyenlőség jobb oldalán egy kifejezés áll.
Az echo, vagy a print után írt kifejezések kiértékelésre kerülnek,
majd az eredményt íródik a képernyőre.
echo 2 * 3;
print 384000 * 4;
===== Gyakorlat 002 =====
Válaszoljon a következő kérdésekre:
- Mi a szerepe egy PHP programban a következő öt karakternek:
- Van e olyan sor a következő kódok közöt, ami kihagyható egy PHP kódban?
*
* mindkettő kötelező
* egyik sem kötelező
- Hogyan lehet egysoros megjegyzést tenni PHP-ban?
- Hogyan lehet többsoros megjegyzést tenni PHP-ban?
- Írjon minimum két utasítást, amellyel kiíratás végezhető PHP nyelven.
===== HTML-be ágyazva =====
Az alábbi példában HTML-be ágyazva látjuk a PHP kódunkat. A nyitó és záró
karaktersorozat megegyezik a fentiekkel, csak a tegek közzé ágyaztuk
azokat.
Példa
Vegyük észre, hogy a fájl kiterjesztése .php továbbra is. A fájlban viszont HTML oldalt írunk,
annak csak egy kis része tartalmaz PHP kódot.
===== Escape szekvenciák =====
A PHP nyelven is használhatunk Escape szekvenciákat. Ezek a generált HTML oldal
forráskódjában fognak megjelenni. A legjellemzőbben használt ilyen szekvencia
a \n, amellyel egy újsor jelet írunk a HTML forrásban. Az alábbi táblázatban
láthatjuk a többi escape szekvenciát.
Ha kiíratom, hogy "merengés", minden egyes karakter a böngészőben
megjelenik.
Most tegyünk egy "\" karakter az "n" karakter elé:
Az "n" karakter, most nem íródik a képernyőre, helyette egy sortörés jelenik meg,
forráskód szinten.
Nézzük meg az eredményt böngészőben.
A "gés" szó nem nincs új sorban. Most nézzük meg
a forráskódot a böngészőben. Ekkor, felfedezhetjük a sortörést.
Ne felejtsük el, hogy mi állandóan HTML oldalakat generálunk. A HTML oldal forrásában
szereplő sortörést szolgálhatja az átláthatóságot, de megjelenített HTML oldalon az
nem jelenik meg. Ha a HTML oldalon szeretnénk sortörést, azt a
tag HTML
forrásba írásával érhetjük el.
Az alábbi példában a HTML oldalon szeretnénk a "Világ" szót új sorban látni:
Világ");
?>
Létezik még egy másik gyakran használt escape szekvencia a "\t".
Ez egy tabulátorjelet ír a HTML kód forrásába. :
^ Escape szekvenciák ^^
^ Szekvencia ^ Jelentés ^
| \n | új sor (LF vagy 0x0A (10) az ASCII táblában) |
| \r | kocsi vissza (CR vagy 0x0D (13) az ASCII táblában) |
| \t | vízszintes tabulátor (HT vagy 0x09 (9) az ASCII táblában) |
| \v | függőleges tabulátor (VT vagy 0x0B (11) az ASCII táblában) (PHP 5.2.5 verziótól) |
| \e | escape (ESC vagy 0x1B (27) az ASCII táblában) (PHP 5.4.0 verziótól) |
| \f | lapdobás (FF vagy 0x0C (12) az ASCII táblában) (PHP 5.2.5 verziótól) |
| \\ | backslash |
| \$ | dollárjel |
| \" | idézőjel |
| \[0-7]{1,3} | megegyezik a szabályos kifejezésekben szereplő oktális jelzéssel |
| \x[0-9A-Fa-f]{1,2} | megegyezik a szabályos kifejezésekben szereplő hexadecimális jelzéssel |
===== Gyakorlat 003 =====
Válaszoljon a következő kérdésekre.
- Milyen kiterjesztést kap az állomány, ha HTML kódba ágyazzuk a PHP kódot?
- Mire való a \n escape szekvencia?
- Mire való a \t escape szekvencia?
- Mire való a \" escape szekvencia?
- Mi íródik a böngészőbe weblap szinten a következő utasítás hatására:
* echo "alma\nkörte";
- Mi íródik a böngészőbe a weblap forrásának szintjén a következő utasítás hatására:
* echo "alma\nkörte";
- Mi íródik a böngészőbe weblap szinten a következő utasítás hatására:
* echo "alma
körte";
- Mi íródik a böngészőbe a weblap forrásának szintjén a következő utasítás hatására:
* echo "alma
körte";
Készítsen PHP programot:
- A program írja ki egymás alá a következő településneveket:
* Miskolc, Szolnok, Szeged, Hatvan
===== HTML oldal generálása =====
Az eddig PHP kódjaink nagyon siralmas HTML oldalakat generáltak,
azok semmilyen HTML szabványnak nem feleltek meg. Egy HTML5-ös
verzióban írt szabályos HTML oldal a következő minimális tartalommal
rendelkezik:
Cím
Helló Világ
Ha az eddig generált HTML oldal forrását megnézzük, akkor
ezeket a tageket sehol nem látjuk. Generáljunk szabályos
html odalakat. Ez azt jelenti, hogy minden egyes sor ki
kell íratni echo vagy print utasítással:
";
print "";
print "";
print "";
print "Cím ";
print "";
print "";
print "Helló Világ
";
print "";
print "";
?>
Vegyük észre a karakterkódolás beállításainál az escape szekvenciákat.
Mivel az idézőjelnek külön szerepe van a PHP-ban, ha ilyen karaktert
szeretnénk generálni egy HTML oldalon, akkor az csak escape szekvenciával
tehetjük meg.
Később látni fogjuk, hogy van egy heredoc nevű szintaxis, amely segítségével
egyetlen print utasítás is elég a HTML generálásához:
Cím
Helló Világ
EOT;
?>
Ha ezt használjuk nincs szükség escape szekvenciákra, a HTML forrásban
is ugyanígy jelennek meg a tagek és a tartalom.
Gyakori hiba a "print <<" után tett egy vagy több szóköz vagy más
nem látható karakter. Az "EOT" után csak a sortörés legyen!
===== Típusok =====
A PHP nyelvben négy egyszerű típus használatos:
* string
* integer
* double
* boolean
Összetett típusok kettő:
* array
* object
Speciális típus:
* resource
* NULL
Kiegészítő típusok:
* number
* mxed_R
* callback
Ha egy változóba a 35 értéket teszem, akkor az integer típusú lesz:
A gettype() függvény kiírja a változó típusát.
Ha 35.123 értéket teszem a $szam változóba, akkor az double típusú lesz:
Ha egy karaktert teszek a $karakter változóba, akkor az string típus lesz:
Ha több karaktert teszünk bele az is karakter típus lesz:
Az $igaz nevű változóba a true értéket téve, boolean típust kapunk:
A típus kiíratására használható még a var_dump() függvény:
";
var_dump($adat);
==== Egyéb típusok példái ====
A tömb típus:
A tömbökről később a Tömbök fejezetben lesz szó részletesen.
Egy objektum létrehozása és ellenőrzése:
Az objektumokról részletesen az Objektum Orientált fejezetben lesz szó.
Erőforrástípus példa:
NULL típus:
===== Változók használata =====
A PHP nyelvben a változókat használatuk előtt nem kell deklarálni. Azok típusa fordítási időben dől el. A változónevek elé mindig egy "$" karaktert teszünk, amely nem tartozik a változó nevéhez. A változókat úgy hozzuk létre, hogy értéket adunk neki:
$szam = 35;
A fentiekben egy "szam" nevű változót hoztunk létre, amelyben a 35-ös egész számot tároltuk el.
A "szam" karakter sorozat egy változót azonosít, ezért néha az ilyen azonosítóként említjük a
munkánk során.
Cím
Helló Világ
EOT;
$szam = 35;
print $szam * 2;
print "\n";
?>
Szöveg megadása:
$nev = "Nagy János";
vagy:
$nev = 'Nagy János';
Ebből is láthatjuk, hogy karaktersorozatot idézőjellel, vagy aposztróffal
adhatunk meg.
==== Érvényes változónevek ====
$4site = 'ez nem jó'; // nem érvényes, mert számmal kezdődik
$_4site = 'ez ok'; // érvényes, aláhúzással kezdődik
$täyte = 'mansikka'; // érvényes, az 'ä' az ASCII 228-as karaktere
$tükörfúrógép = "árvíztűrő"; // érvényes, ellenőrizheted egy ASCII táblában
Változók cím szerinti átadása
==== Számok ====
A matematikából tudjuk, hogy vannak egész és valós számok. A programozás során mindkét számmal dolgozunk, a kétféle szám között különbséget teszünk.
=== Egész számok ===
$a = 1234; // decimális szám
$a = -123; // egy negatív szám
$a = 0123; // oktális szám (egyenértékű 83 decimálissal)
$a = 0x12; // hexadecimális szám (egyenértékű 18 decimálissal)
=== Valós számok ===
$a = 1.234; //fixpontos szám
$a = 1.2e3; //lebegőpontos szám
===== Gyakorlat 004 =====
* Készítse el az előző két fejezetben szereplő egyszerű PHP programot
* Válaszoljon a következő kérdésre:
* Milyen karakterrel vezetjük be a változóneveket.
===== Konstansok =====
Konstans, azaz állandó. A programozó azt vállalja, hogy ezen a
memóriaterületen elhelyezett értéket a program további részében nem változtatjuk meg.
Egyszóval, olyan mint a változó, de később ez nem módosítható.
==== Előre definiált konstansok ====
A PHP nyelv tartalmaz jó-néhány előre meghatározott konstanst. A __LINE__ konstans például az
éppen olvasott fájlról ad információt.
Lássunk néhány előre definiált állandót a teljesség igénye nélkül.
__FILE__ Az aktuális fájl útvonal, neve, kiterjesztése egyben.
__LINE__ Az aktuális fájlban hányadik sorban vagyunk (ahol hivatkozunk erre a változóra /PHP forráskódban/)
PHP_VERSION
PHP_OS
TRUE Értéke 1
FALSE Nincs értéke
E_ERROR Nem feldolgozás során bekövetkezett hiba
E_WARNING Valami nincs rendben ("Ez nem biztos, hogy jó lesz így")
E_PARSE Szintaktikai hiba
E_NOTICE Lehet, hogy hiba, lehet nem
E_ALL Minden E_* formátumú hiba
DIRECTORY_SEPARATOR Könyvtárszeparátor
Az előre definiált konstansokat kiírathatjuk a következő paranccsal:
print_r(get_defined_constants());
==== Saját állandó definiálása ====
A define() függvény globális hatókörben és függvényekben használható:
define("MAX", 300);
Osztály meződefinícióban nem használható.
A const használható osztály meződefiníciójában. Az osztályokkal egyelőre
nem foglalkozunk.
const MAX = 300;
const A = 3; //Definiálunk egy állandót
echo defined("A") . "\n"; //Megvizsgáljuk van-e ilyen
===== Gyakorlat 005 =====
==== Gyakorlat ====
* Készítsen egesz néven projektet
* Tárolja el a következő számokat, majd írassa ki az értékét
| 832 | 834 |
* Készítsen okt néven projektet
* Tárolja el a következő számokat, majd írassa ki az értékét
| 0384 | 038 |
* Készítsen hex néven projektet
* Tárolja el a következő számokat, majd írassa ki az értékét
| 0xa8 | 0xbc |
* Készítsen fnev néven projektet.
* Írassa ki a forrásfájl nevét.
* Használjon előre definiált konstanst.
* Készítsen sor néven projektet.
* Írassa ki a forrásfájl hányadik helyén van a kiírató utasítás.
* Használjon előre definiált konstanst.
* Írjunk programot, amelyik kiírja a PHP aktuális verzióját.
* Használja az előzőleg tanult előredefiniált állandókat.
* Válaszold meg a következő kérdést:
* A define() függvény, használható-e osztály meződefinícióban?
===== Operátorok használata =====
==== Az operátorokról ====
Bármely programozási nyelvben az operátorok csinálnak valamit a változókkal és az állandókkal.
Lehet, hogy összeszorozza őket, vagy összeadja, vagy különbséget von, vagy oszt stb.
A változókat és az állandókat szokás operandus néven is emlegetni. Ebben a tekintetben
azt mondhatjuk, hogy az operátorok az operandusokon csinálnak valamit.
Léteznek egy és két operandusú operátorok. Ha azt mondom: a * b. Az azt jelenti
van egy "*" operátor, amely az "a" és "b" operandus szorzatát adja.
De vannak olyan operátorok is, amelyeknek csak egy operandusok van.
Ilyen például az az operátor amely egy változó értékét eggyel növeli: a++;
Az operátor a "++". Az operandus az "a". Az "a" operandus (változó) értéke
eggyel nő.
==== Aritmetikai operátorok ====
^ Operator ^ Név ^ Leírás ^ Példa ^ Visszatérési érték ^
| x + y | Összeadás | x és y összege | 2 + 2 | 4 |
| x - y | Különbség | x és y különbsége | 5 - 2 | 3 |
| x * y | Szorzat | x és y szorzata | 5 * 2 | 10 |
| x / y | Osztás | x és y hányadosa | 15 / 5 | 3 |
| x % y | Modulus | x és y osztás maradéka | 5 % 2 \\ 10 % 8 \\ 10 % 2 | 1 \\ 2 \\ 0 |
| - x | Negáció | x ellentéte | - 2 | |
| a . b | Konkatenáció | két sztring összefűzése | "Hi" . "Ha" | HiHa |
==== Értékadó operátorok ====
Az alapértelmezett értékadó operátor a PHP-ban a "=".
Baloldalon mindig egy változó áll, jobboldalon pedig egy kifejezés,
melynek értékét a változó felveszi.
Például:
$x = 5;
^ Értékadás ^ Jelentése ^ Leírás ^
| x = y | x = y | A baloldali operátor felveszi a jobboldali kifejezés értékét |
| x += y | x = x + y | Összeadás |
| x -= y | x = x - y | Kivonás |
| x *= y | x = x * y | Szorzás |
| x /= y | x = x / y | Osztás |
| x %= y | x = x % y | Maradékok |
| a .= b | a = a . b | Két karaktersorozat összefűzése |
==== Inkrementáló/Dekrementáló operátorok ====
^ Operátor ^ Név ^ Leírás ^
| ++ x | Pre-increment | Előbb növeli x értékét, majd visszaadja x értékét |
| x ++ | Post-increment | Visszatér x érétkével, majd növeli x-et. |
| -- x | Pre-decrement | Csökkenti x értékét eggyel, majd visszatér x-el |
| x -- | Post-decrement | Visszatér x-el, majd csökkenti x értékét |
==== Összehasonlító operátorok ====
Két értéket hasonlítunk össze.
^ Operátor ^ Név ^ Leírás ^ Példa ^
| x == y | Equal | True ha x és y egyenlő | 5==8 false értékkel tér vissza |
| x === y | Identical | True ha x és y egyenlő és azonos típusúak | 5==="5" false értékkel tér vissza |
| x != y | Not equal | True ha x és y nem egyenlő | 5!=8 true értékkel tér vissza |
| x <> y | Not equal | True ha x és y nem egyenlő | 5<>8 true értékkel tér vissza |
| x !== y | Not identical | True ha x és y nem egyenlő vagy nem azonos a típusuk | 5!=="5" true értékkel tér vissza |
| x > y | Greater than | True ha x nagyobb mint y | 5>8 false értékkel tér vissza |
| x < y | Less than | True if x kisebb mint y | 5<8 true értékkel tér vissza |
| x >= y | Greater than vagy equal to | True ha x nagyobb vagy egyenlő mint y | 5>=8 false értékkel tér vissza |
| x <= y | Less than vagy equal to | True ha x kisebb vagy egyenlő mint y | 5<=8 true értékkel tér vissza |
==== Logikai operátorok ====
^ Operátor ^ Név ^ Leírás ^ Példa ^
| x and y | And | Igaz ha mindkettő, azaz x és y is igaz | x=6 \\ y=3 \\ (x < 10 and y > 1) returns true |
| x or y | Or | Igaz ha egyik vagy mindkettő igaz | x=6 \\ y=3 \\ (x==6 or y==5) returns true |
| x xor y | Xor | Igaz, ha az egyik x vagy y igaz; de ha mindkettő igaz, az eredmény hamis | x=6 \\ y=3 \\ (x==6 xor y==3) returns false |
| x && y | And | Igaz ha mindkettő, azza x és y is igaz | x=6 \\ y=3 \\ (x < 10 && y > 1) returns true |
| x || y | Or | Igaz ha egyik vagy mindkét, x és y is igaz | x=6 \\ y=3 \\ (x==5 || y==5) returns false |
| ! x | Not | Igaz ha x nem igaz | x=6 \\ y=3 \\ !(x==y) returns true |
==== Tömboperátorok ====
^ Operátor ^ Név ^ Leírás ^
| x + y | Unió | x és y uniója |
| x == y | Equality | True ha x és y azonos kulcs/érték párral rendelkezik |
| x === y | Identity | True ha x és y azonos kulcs/érték párral rendelkezik, egyező sorrendben és a típusuk is megegyezik |
| x != y | Inequality | True ha x nem egyenlő y-l |
| x <> y | Inequality | True ha x nem egyenlő y-l |
| x !== y | Non-identity | True ha x nem egyenlő y-l |
===== Gyakorlat 006 =====
* Készítsen projektet, szamo néven.
* Egy egész számot osszon el, egy másik egész számmal.
* Készítsen projektet, valtoz néven.
* Tároljon változóban két egész számot.
* Az első változó tartalmát, ossza el a másodikkal.
* Válaszoljon a következő kérdésekre:
* Mire való a % operátor?
* Mire való a . (pont) operátor?
* Mire való a ++ operátor?
* Mi a különbség a == és az === operátor között?
===== Szintaxis =====
A programozás elméletből már tudjuk, hogy a szintaxis egy nyelvben a helyesírás.
A helyesírást valamilyen formában rögzíteni is szokás. Eddig használtuk a print
utasítást, nézzük meg a helyesírását, vagyis a szintaxisát.
A print utasítás szintaktikája:
int print ( string $arg )
Ebből azt látjuk, hogy a print utasításnak egy darab bemenő paramétere lehet, amelynek
string típusúnak kell lennie. Ezt a zárójelekben lévő (string $arg) mutatja számunkra.
A print előtt van egy "int". Az int azt jelenti a print előtt, hogy a print egy egész
számmal tér vissza, amelynek típusa int.
Amikor fentebb használtuk az print() függvényt, a visszatérési értékkel nem foglalkoztunk,
de akár ezt is írhattam volna:
$szam = print("Teszt");
A $szam egy változó, amiben eltárolódik a print() függvény visszatérési értéke. A változó egy
memóriaterület.
A fentiekből látjuk, hogy egy függvényt szintaxisában mindig leírjuk mik a bemenő paraméterek,
és milyen értékkel tér vissza.
===== Formázott kivitel =====
==== printf függvény ====
A printf() függvény lehetővé teszi a kimenet formázását.
Szintaxis:
int printf ( string $format [, mixed $args [, mixed $... ]] )
A $format mindig egy karaktersorozat, amely tartalmazhat
egy vagy több formátumkódot. A formátumkód mindig egy
vagy több argumentumot ír le. Az argumentumok a következők
lehetnek:
* literális (egy szám, egy karakter, egy karaktersorozat)
* változó
* egy nevesített állandó
* egy kifejezés
Legyen például egy szám literális, amit formázva szeretnénk kiíratni: 35.
A printf() függvényt, ekkor így használjuk:
printf("%d", 35);
Ha két egész számot szeretnék kiíratni, szóközzel tagolva, akkor:
printf("%d %d", 35, 40);
Vegyük észre két ilyen egységet írtam: %d. A %d a formátumkód.
A formátumkód mindig egy % jel karakterrel kezdődik és egy valamilyen
formátumkarakterrel végződik. Egész számok esetén a formátumkarakter,
a "d" betű, mint a példáinkban is látszik.
Valós számokat, az f formátumkarakterrel íratjuk ki. Legyen a példa
kedvéért egy 832.83434 valós szám. Írassuk ki:
printf("%f", 832.83434);
Egy karaktert, a c formátumkarakterrel írathatunk ki. Legyen egy
'b' karakter, amit szertnénk kiíratni.
printf("%c", 65);
Karaktersorozat kiíratása:
printf("%s", "alma");
==== Formátumkarakterek ====
| %% | Százalékjelet ír |
| %b | Bináris szám |
| %c | Egy ASCII érték karakter megfelelője |
| %d | Előjeles decimális szám |
| %e | Tudományos alak (pl.: 1.2e+2) |
| %u | Előjel nélküli decimális szám |
| %f | Lebegőpontos szám (a helyi beállításokat figyelembe veszi) |
| %F | Lebegőpontos szám (a helyi beállításokat nem veszi figyelembe) |
| %o | Oktális szám |
| %s | String |
| %x | Hexadecimális szám (kisbetűs) |
| %X | Hexadecimális szám (nagybetűs) |
==== Egyéb módosítók ====
Ezek a módosítók a % jel és a formátum karakter között helyezhetők el:
Például:
%.2f
* A % jel jelzi, hogy formátumkód következik.
* Az f betű azt jelenti, valós számot szeretnék kiíratni
* A % és az f között a .2, azt jelentése:
* a számot kettő tizedesjegy pontossággal szeretném kiírni
A .2 karakterek módosítók. Módosítják a kiírás formáját.
A következő táblázat bemutatja, még milyen módosítók
használhatók:
| + | Számok előtt a plusz jel kiíratása |
| ' | Mit használjunk kitöltőnek A %'x20s például az "x" karakterrel tölt ki |
| - | Balra igazítás |
| [0-9] | A kiíratás szélessége |
| .[0-9] | A tizedesjegyek száma |
==== Példák ====
Példa1:
$str = "Helló";
$szam = 123;
printf("%s Világ. A nap száma: %u", $str, $szam);
Kimenet:
Helló Világ. A nap száma: 123
Példa2:
$number = 123;
printf("%f",$number);
Kimenet:
123.000000
===== Gyakorlat 007 =====
* Válaszoljon a következő kérdésekre:
* Egész számot, milyen formátumkarakterrel kell kiíratni?
* Válasszon: f, d, c, s
* Valós számot, milyen formátumkarakterrel kell kiíratni?
* Válasszon: f, d, c, s
* Karakter formátumban számot, milyen formátumkarakterrel kell kiíratni?
* Válasszon: f, d, c, s
* Karaktersorozatot, milyen formátumkarakterrel kell kiíratni?
* Válasszon: f, d, c, s
* Írjon programot, fegesz néven.
* A program tárolja egy változóban a 457 számot.
* Írass ki a számot 8 szélességben, vezető nullákkal.
* Írjon programot, fvalos néven.
* A program tárolja egy változóban a 834.5834 számot.
* Írass ki a számot:
* 20 szélességben
* vezető nullákkal
* 2 tizedesjegy pontossággal
* Írjon programot, fkar néven.
* A program tárolja egy változóban a 68-s számot.
* Írass ki a karakterként.
* Írjon programot, fstr néven.
* Tárolja változóban a "víz" szót.
* Írassa ki a 10 szélességben.
===== Matematikai függvények =====
==== abs() ====
Az abs() függvény segítségével egy szám abszolút értékét kérhetjük. Szintaxisa:
number abs ( mixed $number )
Példa:
$absErtek = abs(-54);
echo "$absErtek\n";
==== ceil() ====
A ceil() függvény egy számot **felfelé** kerekít. Szintaxisa:
ceil ( float $value ) : float
Példa:
echo ceil(4.1) . "\n";
Eredmény:
5
==== cos() ====
A cos() függvény egy szám koszinuszát adja.
Paraméterként radiánt kell megadni. Szintaxisa:
float cos ( float $arg )
$szog = 30;
$rad = $szog * pi() / 180;
echo cos($rad) . "\n";
==== deg2rad ====
A deg2rad() függvény fokból, radiánba számol át egy értéket.
float deg2rad ( float $number )
$szog = 30;
$rad = deg2rad($szog);
echo sin($rad) . "\n";
==== exp() ====
Az e valamilyen hatványának számítása, e^x.
Az e, a természetes logaritmus alapja, körülbelül: 2,718282.
exp ( float $arg ) : float
Az e a nyolcadik hatványon.
echo exp(8) . "\n";
==== floor() ====
A floor() függvény egy számot lefelé kerekít. Szintaxis:
float floor ( float $value )
Példa:
$a = 4.9;
print floor($a);
Eredmény:
4
==== log10() ====
A log10() függvény egy szám tízes alapú logaritmusát adja. Szintaxis:
float log10 ( float $arg )
Példa:
echo log10(3);
==== log() ====
Ha a base paraméter meg van adva, akkor visszatér ezen alapú logaritmussal, egyébként
természetes alapú logaritmussal tér vissza. Szintaxis:
float log ( float $arg [, float $base = M_E ] )
echo log(3);
==== max() ====
A legnagyobb érték kiválasztása:
max ( array $values ) : mixed
max ( mixed $value1 [, mixed $... ] ) : mixed
$tomb = array(3, 9, 4, 5);
echo max($tomb) . "\n";
$a1 = 35;
$a2 = 72;
$a3 = 18;
$a4 = 29;
echo max($a1, $a2, $a3, $a4) . "\n";
==== min() ====
A legkisebb érték kiválasztása
mixed min ( array $values )
mixed min ( mixed $value1 , mixed $value2 [, mixed $value3... ] )
==== pi() ====
A PHP nyelvben a PI értékét egy függvény adja:
float pi ( void )
Használata, például:
$szog = 30;
$rad = $szog * pi() / 180;
==== pow() ====
A pow() függvénnyel, egy szám hatványát számíthatjuk ki.
number pow ( number $base , number $exp )
Például 2, a nyolcadik hatványon.
echo pow(2, 8) . "\n";
==== rad2deg() ====
float rad2deg ( float $number )
==== round() ====
szintaxis:
float round ( float $val [, int $precision = 0 [, int $mode = PHP_ROUND_HALF_UP ]] )
Visszatér egy kerekített értékkel. Állítható a precizitás és a mód:
| val | A kerekítendő érték |
| precision | Opcionálisan megadható precizitás |
| mode | A következő közül egy: PHP_ROUND_HALF_UP, PHP_ROUND_HALF_DOWN, PHP_ROUND_HALF_EVEN vagy PHP_ROUND_HALF_ODD |
Példa:
$szam1 = 3.4;
$szam2 = 3.6;
echo round($szam1);
echo "
";
echo round($szam2);
Pontosság megadására példa:
$szam1 = 3.12345;
echo round($szam1, 3);
Eredmény:
3.123
==== sin() ====
A sin() függvény egy szám szinuszát adja. Paraméterként radiánt kell megadni. Szintaxisa:
float sin ( float $arg )
Példa:
$szog = 1;
$rad = $szog * pi() / 180;
echo sin($rad);
==== sqrt() ====
Gyökvonás.
float sqrt ( float $arg )
echo sqrt(9) . "\n";
==== tan() ====
Egy szám tangensét adja. Paraméterként radiánt kell megadni. Szintaxisa:
float tan ( float $arg )
Példa:
$szog = 1;
$rad = $szog * pi() / 180;
echo tan($rad);
===== Gyakorlat 008 =====
* Írjon programot, patrol néven.
* A program, számolja ki, 43-nak az 5.-dik hatványát.
* Írjon programot, tengi néven.
* A program, számolja ki 35 foknak a szinuszát.
* Írjon programot, kosz néven.
* A program, számolja ki 37 foknak a koszinuszát.
* Írjon programot, negyi néven.
* A program, számolja ki 49-nek a gyökét.
===== Véletlen szám =====
==== Prototípusok ====
A rand() függvény egy véletlen számot generál. Szintaxisa:
int rand ( void )
int rand ( int $min , int $max )
Az srand() függvény előkészíti a véletlen szám generátort. Szintaxisa:
void srand ([ int $seed ] )
Az mt_getrandmax() függvény visszaadja a legnagyobb generálható véletlen számot.
int mt_getrandmax ( void )
==== Véletlen szám generálás példa ====
$kocka = rand(1, 6);
$lottoszam1 = rand(1, 90);
srand(mktime());
$a = rand(1, 6);
print $a;
Eredmény:
srand(mktime());
$a = rand(1, 6);
print $a;
===== Gyakorlat 010 =====
* Írjon programot, amely megadja az ötös lottó egyik számát.
* A szám 1-90 között szám.
===== Konverzió =====
==== string egésszé ====
A string típussal is tudunk számolni:
$szamStr = "35";
echo $szamStr * 2;
Ha szeretnénk tényleges egésszé konvertálni:
$szamStr = "35";
$szam = intval($szamStr);
echo gettype($szam);
==== string valóssá ====
A string valós számmá alakítása a floatval() függvénnyel lehetséges.
$szamStr = "35.123";
$szam = floatval($szamStr);
echo gettype($szam);
A doubleval() függvény a floatval() más néven.
==== Szám sztringgé ====
Az strval() függvény egy értéket sztring típussá alakít.
$szam = 35;
$szamStr = strval($szam);
echo gettype($szamStr);
==== decbin() ====
A decbin() függvény a decimális számokat binárissá alakítja. Szintaxisa:
string decbin ( int $number )
echo decbin("8");
Kimenet:
1000
==== dechex() ====
A dechex() függvény a decimális számokat hexadecimális számokká alakítja. Szintaxisa:
string dechex ( int $number )
Példa:
echo dechex("11");
Kimenet:
b
==== decoct() ====
A decoct() egy decimális számot oktálissá alakít. Szintaxisa:
string decoct ( int $number )
==== hexdec() ====
A hexdec() függvény egy hexadecimális számot decimálissá alakít. Szintaxisa:
number hexdec ( string $hex_string )
==== octdec() ====
number octdec ( string $octal_string )
===== Bekérés =====
==== Egyetlen script ====
Jó kérdés, hogy böngészőben bekérés esetén hol adjuk meg az adatot.
Beírhatjuk paraméterként, és akkor egy ''$_GET[]'' tömbben tudunk rá hivatkozni.
De bekérhetjük egy HTML oldalon is, amiből meghívhatjuk a feldolgozó PHP scriptet.
A példa kedvéért írjunk egy PHP scriptet, ami egyetlen adatot vesz át a címsorból.
Egy számot fogunk átvenni, a számot eltároljuk a $szam változóban, majd kiíratjuk.
$szam = $_GET['szam'];
print "Ezt irtad: $szam";
A végrehajtáshoz ezt írjuk a böngészőbe:
http://server/gyakorlas/index.php?szam=40
Itt adjuk át a 40 értéket paraméterként, a szam néven tudunk majd rá hivatkozni.
Az index.php után egy "?" (kérdőjel) karakter áll. Ezzel mondjuk meg, hogy az
index.php számára paraméter fogunk átadni. A paraméter a szam=40.
A feladathoz egyetlen PHP scriptet írtunk.
==== Két PHP script ====
Most ugyanezt fogjuk megtenni, csak két PHP scriptet használunk.
Az első PHP script csak egy űrlap lesz. A másik PHP script pedig
feldolgozza az űrlapot.
Legyen egy beker.php script, ami generálja az űrlapot:
EOT;
Létrehozunk egy űrlapot, ahova a felhasználó beírhatja a kért számot.
A böngésző meghívja a fel.php scriptet.
A generált HTML kód, nem egy érvényes weboldal, de a kipróbáláshoz megfelel.
Az űrlapot, mindig