Što je PHP ?
Osnove sintakse
Podržani tipovi
Varijable
Klase i objekti
Kontrolne strukture
Rad s mySQL bazom
Zaključak
4. Varijable

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.

Prethodna Sljedeća