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

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...

Prethodna Sljedeća