PHP podržava
sljedeće tipove podataka:
- array (polje)
- floating-point
numbers (brojevi s
pomičnim zarezom)
- integer
(cijeli brojevi)
- string
(znakovni niz)
- object (iz
ovog tipa se izvode svi tipovi)
Tip varijable najčešće ne postavlja
programer, nego ga PHP implicitno postavlja ovisno
o kontekstu u kojem se varijabla koristi. Upravo
zbog te slobode programera dosta često dolazi
do grešaka u definiranju tipova. Da se to ne bi
dogodilo, možemo castati varijablu uz pomoć settype()
funkcije.
3.1. Integer tip podataka
Integer tip podataka se može definirati
na bilo koji od sljedecih načina:
<html>
<head>
<title>Primjer ugradenog koda</title>
</head>
<body>
<?php
$a =
1234; #
decimal number
$a =
-123;
# a negative number
$a =
0123; #
octal number (equivalent to 83 decimal)
$a =
0x12; #
hexadecimal number (equivalent to
18 decimal)
?>
</body>
</html>
|
|
Veličina integera ovisi o platformi
na kojoj se PHP izvodi.
3.2. Brojevi s pomičnim
zarezom
Brojevi s pomičnim zarezom mogu
se definirati na sljedeće načine:
<html>
<head>
<title>Primjer ugradenog koda</title>
</head>
<body>
<?php
$a
= 1.234;
$a = 1.2e3;
?>
</body>
</html>
|
|
$a = 1.234;
$a = 1.2e3;
Veličina brojeva s pomičnim zarezom
ovisi o platformi, a najčešća maksimalna vrijednost
je ~1.8e308 s preciznošću na 14 decimala (IEEE
64-bitni format).
3.3. Znakovni niz (String)
Stringovi se mogu specificirati
koristeći jedna od dva seta delimitera.
Ako se string nalazi unutar dvostrukih
navodnika ("), varijable unutar stringa će
se koristiti.
Kao i u C-u ili Perlu, za specificiranje escape
znakova koristi se backslash(\).
Escape
znakovi: \n, \r, \t, \\, \$, \", ...
Drugi način odvajanja stringova
su jednostruki navodnici ('). Kad je string unutar
jednostrukih navodnika, jedini escape znakovi
koje ce PHP razumjeti su "\\" i "\'".
Varijable navedene unutar jednostrukih navodnika
se nece koristiti kao varijable, vec kao najobicniji
niz znakova.
Primjeri:
<html>
<head>
<title>Primjer ugradenog koda</title>
</head>
<body>
<?php
/*
Assigning a string. */
$str
= "This is a string";
/*
Appending to it. */
$str
= $str . " with some more text";
/*
Another way to append, includes an
escaped newline. */
$str
.= " and a newline at the end.\n";
/*
This string will end up being '<p>Number:
9</p>' */
$num
= 9;
$str = "<p>Number: $num</p>";
/*
This one will be '<p>Number:
$num</p>' */
$num
= 9;
$str = '<p>Number: $num</p>';
/*
Get the first character of a string
*/
$str
= 'This is a test.';
$first = $str[0];
/*
Get the last character of a string.
*/
$str
= 'This is still a test.';
$last = $str[strlen($str)-1];
?>
</body>
</html>
|
|
Znakovni unutar znakovnog niza se
mogu dohvaćati kao da se radi o brojčano indeksiranom
polju znakova, koristeći sintaksu sličnu C-u.
Iznad imate dva primjera gdje se koristi takav
dohvat.
Također, stringovi se mogu nadovezivati
koristeći operator konkatenacije "."
Primjer:
$str = 'Evo samo da se'
. ' nadovezem';
3.4. Polja (Arrays)
3.4.1. Jednodimenzionalna
polja
PHP podržava i skalarna i asocijativna
polja. Ustvari, uopce nema razlike izmedu ta dva
tipa polja.
Primjer:
<html>
<head>
<title>Primjer ugradenog koda</title>
</head>
<body>
<?php
$a[0]
= "abc";
$a[1] = "def";
$b["foo"] = 13;
?>
</body>
</html>
|
|
Također, polje se može implicitno
kreirati jednostavno dodajući nove vrijednosti
u polje. Kada dodate vrijednost u polje koristeći
prazne uglate zagrade, ta vrijednost će se dodati
na kraj polja.
Primjer:
<html>
<head>
<title>Primjer ugradenog koda</title>
</head>
<body>
<?php
$a[] = "hello";
// $a[2] == "hello"
$a[] = "world"; // $a[3]
== "world"
?>
</body>
</html>
|
|
Sortiranje polja se može napraviti
na razlicite načine koristeci ugrađene funkcije
asort(), arsort(), ksort(), rsort(), sort(), uasort(),
usort(), i uksort() ovisno o tome koji tip sortiranja
nam je potreban.
3.4.2. Višedimenzionalna polja
Višedimenzionalna polja su također
prilično jednostavna. Primjer sve govori pa evo:
<html>
<head>
<title>Primjer ugradenog koda</title>
</head>
<body>
<?php
$a[1]
= $f; #
one dimensional examples
$a["foo"]
= $f;
$a[1][0]
= $f; #
two dimensional
$a["foo"][2]
= $f; #
(you can mix numeric and associative
indices)
$a[3]["bar"]
= $f; #
(you can mix numeric and associative
indices)
$a["foo"][4]["bar"][0]
= $f; #
four dimensional!
?>
</body>
</html>
|
|
3.5. Objekti
Za instanciranje objekta može se
koristiti "new" da bi se instancirao
objekt koji se kasnije pridružuje varijabli.
Primjer:
<html>
<head>
<title>Primjer ugradenog koda</title>
</head>
<body>
<?php
class
foo {
function
do_foo() {
echo
"Doing foo.";
}
}
$bar
= new foo;
$bar->do_foo();
?>
</body>
</html>
|
|
U gornjem primjeru prvo definiramo
klasu foo i unutar klase funkciju do_foo() koja
ispisuje tekst.
Naredbom $bar=new foo; instanciramo objekt izveden
iz klase foo i pridruzujemo ga varijabli $bar.
Sada preko varijable $bar mozemo pokrenuti funkciju
do_foo().
Ako imate dilema oko ovoga, u poglavlju
"Klase i objekti" cete ih otkloniti...
|