A PHP programozási nyelv

Nyelvi elemek

1. Jelkészlet

A nyelv jelen implementációiban az ASCII karakterkészlet jelei szerepelhetnek a programkódban. A program lexikális elemeit szükség esetén whitespace jelekkel határolhatjuk el egymástól. Az utasításokat pontosvessző (';') választja el. A nyelv case sensitive, azaz megkülönbözteti a kis- és nagybetűket. Ezért a függvények definiálásakor is figyelnünk kell arra, hogy a kis- és nagybetűk megegyezzenek! A logikai változók értéke true és false lehet, ezek megadásánál nem kell figyelnünk a kis- és nagybetűkre. Ez általában a többi beépített konstansra is igaz (pl. NULL).

2. Azonosítók

A változók nevei elé '$' jelet kell tenni. A név betűket, számokat és aláhúzás karaktereket ('_') tartalmazhat, számmal azonban nem kezdődhet! Szóközök és más olyan karakterek, - melyek nem számok vagy betűk - nem szerepelhetnek az azonosítókban. Ne feledjük, hogy a pontosvessző (';') a PHP utasítás végét jelzi, így a pontosvessző nem része a változók nevének.

3. Literálok

A programban többféle numerikus literál is előfordulhat. Megadásának módjai:

$a1 =  1234;      # decimális szám
$a2 =  -123;      # negatív egész szám
$a3 =  0123;      # oktális egész szám (decimálisan 83)
$a4 =  0x12;      # hexadecimális egész szám (decimálisan 18)
$a5 =  12.3;       # lebegőpontos tört szám
$a6 =  1.23e2;    # másik megadási mód
$a7 =  5.8E-1;    # 0.58 másik megadása

A sztringekre semmilyen korlátozás nincs, ugyanúgy működnek az interpolációt és speciális karaktereket is beleértve, mint Perlben.
A sztring-literálokat hagyományos illetve egyszeres idézőjelekkel határoljuk. A Perl-höz képest mindössze annyi a különbség, hogy a hagyományos idézőjelek közé írt változókat a fordító kiértékeli, amíg egyszeres idézőjeleknél nem.

Speciális karaktereket a '\' jel segítségével írhatunk:
   \n   új sor
   \r   kocsi vissza
   \t   vízszintes tabulátor
   \\   backslash
   \”   idézőjel
   \$   dollárjel

Működik a Perlben meglévő heredoc-rendszerű sztringmegadás is:

$str <<<STR Ez egy példa egy sztringre, amely több sorban van, és heredoc szintaxisú STR;

4. Megjegyzések

Megjegyzések készítéséhez a C++ és Unix shell-es jelölések állnak rendelkezésünkre:

A "//"-el vagy '#'-al kezdődő kommentek a sor végéig érvényesek.
Többsoros kommentezésre a /* komment */ jelölés használandó, de ezeket nem lehet egymásba ágyazni.

5. Szintaktikai specialitás

A HTML-be ágyazottságból kifolyólag alapvetően weboldalak forrásába írunk PHP programot, így meg kell különböztetnünk a dokumentum egyéb részeitől. Ezért a PHP utasításokat mindig egy meghatározott karaktersorral kell kezdeni és bezárni. Sok hibát kizárhatunk, ha programjainkban a "<?php" nyitó és a "?>" záró karaktersorokat használjuk, ezért ez a legelterjedtebb jelölésmód. Ugyanis az érvényes nyitó és záró elemek a php.ini konfigurációs fájlban vannak deklarálva, amik szerverenként eltérhetnek egymástól, így előfordulhat, hogy egy szerveren nem értelmezi az interpreter a php programunkat, hanem közvetlenül a kimenetre küldi a forráskódot. A "<?" "?>"; jelölés használata viszont nagyon nem ajánlott, ugyanis az XML dokumentumok nyitó és záró tagja is hasonló, így egy include-olt (beágyazott) xml dokumentumot is forráskódnak értelmezne az interpreter.

A következő jelölésmódok használhatóak:

1. módszer:
<? echo ("Ez a legegyszerűbb, egy SGML processing utasítás\n"); ?> <?= $valtozo; /* Ez egy rövidítése a "<? echo ...?>"-nak*/ ?>

2. módszer:
<?php echo ("Ha XHTML vagy XML dokumentumokat is akarsz szolgáltatni, biztos szeretni fogod ezt\n"); ?>

3. módszer:
<script language="php"> echo ("Néhány szerkesztő (ilyen pl. a FrontPage) nem szereti a processing utasításokat"); </script>

4. módszer:
<% echo ("Használhatsz ASP-stílusú tag-eket"); %> <%= $valtozo; # Ez egy rövidítése a "<% echo ..%>"-nak %>