4.1. Osnove
Varijable u PHP su označene dolar-znakom
($) iza čega slijedi ime varijable. Ime varijable
je case-sensitive.
Za imena varijabli vrijede ista pravila kao i
za ostale labele u PHP. Ispravno ime varijable
počinje s podvlakom(_) ili slovom, a iza toga
se mogu nalaziti brojevi, slova i podvlake.
Primjer:
<html>
<head>
<title>Primjer ugradenog koda</title>
</head>
<body>
<?php
class
foo {
$var = "Bob";
$Var = "Joe";
echo "$var, $Var"; //
outputs "Bob, Joe"
$4site
= 'not yet'; //
invalid; starts with a number
$_4site = 'not yet'; //
valid; starts with an underscore
$täyte = 'mansikka'; //
valid; 'ä' is ASCII 228.
?>
</body>
</html>
|
|
U PHP 3 varijablama su UVIJEK pridružene
vrijednosti. To znači, npr. ako napišemo $var1=$var2
i poslije promijenimo vrijednost varijabli $var2,
to neće utjecati na $var1.
U PHP 4 je uveden assign-by-reference,
što ce reći da neka nova varijabla jednostavno
pokazuje na original varijablu. To se izvodi tako
da se jednostavno doda znak & ispred varijable
na koju želimo da nova varijabla pokazuje.
Primjer:
<html>
<head>
<title>Primjer ugradenog koda</title>
</head>
<body>
<?php
<?php
$foo = 'Bob'; //
Pridjelimo vrijednost 'Bob' varijabli
$foo
$bar = &$foo; //
varijabli $bar pridruzujemo referencu
na &foo
$bar = "My name is $bar";
//
Varijabli $bar mijenjamo vrijednost
usput koristeci //staru vrijednost
echo $foo; //
$foo se takoder promijenio, jer preko
$bar mijenjamo i $foo
echo $bar;
?>
</body>
</html>
|
|
Ispis:
My name
is Bob.
My name is Bob.
4.2. Predefinirane varijable
PHP pruža velik broj predefiniranih
varijabli koje može koristiti svaka pokrenuta
skripta. Ipak, mogućnost korištenja velikog broja
od tih varijabli ovisi o tome koji je server pokrenut,
koja verzija, te o podešavanju servera i drugim
faktorima.
Za listu svih predefiniranih varijabli
koristite funkciju phpinfo().
Environment varijable su unesene
u PHP-ov globalni namespace iz okruženja u kojem
je pokrenut PHP parser. Pošto okruženja ima puno,
broj razlićitih environment varijabli je ogroman,
tako da je teško naći definitivnu listu svih environment
varijabli. Za popis Vaših environment varijabli
najbolje je da pogledate dokumentaciju Vaše ljuske
u kojoj je pokrenut PHP parser.
4.3. Doseg varijabli
Doseg varijable u PHP je kontekst
u kojem je varijabla definirana. Najcešće sve
PHP varijable imaju jedan doseg koji uključuje
i includane file-ove i cijelu .php skriptu.
Primjer:
$a = 1;
include "b.inc";
U gornjem primjeru, varijabla $a
se može koristiti i unutar b.inc skripte.
Kod korisnički definiranih funkcija
situacija je malo drugačija. Doseg bilo koje varijable
definirane unutar funkcije je ograničen samo na
tu funkciju. Također, varijable izvan funkcije
ne vrijede unutar funkcije.
Primjer:
<html>
<head>
<title>Primjer ugradenog koda</title>
</head>
<body>
<?php
$a
= 1; /*
globalni doseg*/
Function
Test () {
echo $a; /*
ovdje se referenciramo na lokalnu
varijablu $a koja ne postoji */
}
Test
();
?>
</body>
</html>
|
|
Gore navedena skripta neće ispisati
ništa, jer varijabla $a je različita od globalne
varijable $a.
Naravno da i za to ima rješenje... Ako želimo
koristiti globalne varijable unutar funkcije,
moramo navesti ključnu rijec global i potom globalne
varijable koje želimo koristiti.
Primjer:
<html>
<head>
<title>Primjer ugradenog koda</title>
</head>
<body>
<?php
$a = 1;
$b = 2;
Function
Sum () {
global $a, $b;
$b = $a + $b;
}
Sum
();
echo $b;
?>
</body>
</html>
|
|
Očekivano, ispis gornje skripte
će biti 3.
4.4. Varijable izvan PHP-a
HTML forme (GET i POST varijable)
Kada se forma pošalje PHP skripti,
sve varijable iz te forme će biti dostupne u PHP
skripti kojoj je šaljemo. Ako je track_vars postavljen
na TRUE, onda će varijable iz forme biti dostupne
u asocijativnim poljima $HTTP_POST_VARS, $HTTP_GET_VARS
i $HTTP_POST_FILES ovisno o kakvim je varijablama
riječ.
Primjer jednostavne forme:
<html>
<head>
<title>Primjer ugradenog koda</title>
</head>
<body>
<form action="foo.php"
method="post">
Name:
<input type="text" name="username"><br>
<input
type="submit">
</form>
</body>
</html>
|
|
Kada se gornja forma ispuni i pošalje,
vrijednosti iz textbox-a će biti dostupna u polju
HTTP_POST_VARS. Dakle, username u PHP skripti
cemo dohvaćati kao HTTP_POST_VARS['username'].
Ako u konfiguraciju postavi register_globals
na TRUE, onda ćemo username moći dohvaćati i kao
$username.
GET varijable se nalaze u QUERY-STRINGU....
To je onaj znakovni niz koji se pojavljuje u URL-u
stranice iza upitnika...
Npr. http://www.php.net/cal.php?id=1436
U gornjem URL-u prenesena je GET
varijabla $id čija je vrijednost 1436. Moramo
biti jako pažljivi pri prenošenju varijabli preko
query-stringa ako se radi o povjerljivoj informaciji,
a također i paziti da korisnik mijenjanjem query
stringa ne bi mogao doći do neke sigurnosne rupe.
4.5. Konstante
U PHP-u se konstante definiraju
uz pomoć funkcije define(). Slijedi primjer:
<html>
<head>
<title>Primjer ugradenog koda</title>
</head>
<body>
<?php
define("CONSTANT",
"Hello world.");
echo CONSTANT; // outputs "Hello
world."
?>
</body>
</html>
|
|
Također, postoje unaprijed definirane
konstante.
|