Muutujad ja konstantid

Muutuja on suurus või sümbol, mis võib omada erinevaid väärtusi. Kord juba defineeritud konstanti aga muuta ei saa.

Nii muutuja kui konstanti nimi peab PHP-s algama ladina tähe või alakriipsuga. Sellele võib järgneda suvaline täht a-z, number 0-9 või alakriips.

Võimalik on küll kasutada ka täpitähti, kuid neid on soovitatav vältida.

Muutujad

Muutuja algab PHP-s dollarimärgiga. Muutuja nimi on tõstutundlik, st et $midagi ja $Midagi on kaks erinevat muutujat.

Harilike jutumärkide ja heredoc süntaksiga loodud sõnedes saab kasutada muutujaid, nt

$arv = 100;
echo "\$arv = $arv"; // väljastab $arv = 100

Kui muutuja puutub kokku muu tekstiga siis tuleb see lisada loogelistesse sulgudesse:

$arv = 'sada';
echo "Neid on {$arv}tuhat"; // ilma lookadeta oleks $arvtuhat ja sellist muutujat ei leitaks

Samuti tuleb loogelistesse sulgudesse panna massiivimuutujad:

echo <<<eod
Su IP aadress on: {$_SERVER['REMOTE_ADDR']}
eod;

Globaalmuutujad

PHP-s on eeldefineeritud globaalmuutujad (predefined globals), mis on kättesaadavad igas skriptiosas. Nendeks on:

$_SERVER - sisaldab serverimuutujaid, nagu

$_SERVER['SERVER_NAME'] - serveri nimi
$_SERVER['SCRIPT_NAME'] - parasjagu töötava faili nimi
$_SERVER['HTTP_USER_AGENT'] - kasutaja brauseri identifikaator
$_SERVER['REMOTE_ADDR'] - kasutaja IP aadress

Kõiki serveri muutujaid näeb nii:

<pre>
<?php
print_r($_SERVER);
?>

$_SESSION - sessioonimuutujad
$_POST - vormilt saadetud POST muutujad
$_GET - aadressireal asuvad muutujad (nt ?tere=vanakere&pikkus=122)
$_COOKIES - küpsised
$_REQUEST - see sisaldab kõiki GET, POST ja COOKIES muutujaid

Lisaks on muutuja $GLOBALS, mis sisaldab kõiki skriptis defineeritud muutujaid.

Kõik nimetatud globaalmuutujad on massiivid ning nende sisu saab näha print_r funktsiooniga.

Muutujate funktsioonid

Muutujatega tegutsemiseks on mitmeid funktsioone. Mõne sõnaga olulisematest:

isSet

Funktsioon tagastab true kui argumendina antud muutuja on olemas:

$a = 1;
if(isset($a)) { echo 'Muutuja $a on olemas'; }

Seda saab kasutada ka massiivi elementide olemasolu kontrollimiseks:

<?php
$a = array(1=>'esimene', 2=>'teine');
if(!isset($a[3])) { echo 'elementi $a[3] ei ole olemas'; }
?>

empty

tagastab true kui muutujal puudub väärtus:

<?php
$a = '';
echo empty($a) ? 'tühi' : 'olemas'; // tühi
 
$b = 0;
echo empty($b) ? 'tühi' : 'olemas'; // tühi
 
$c = array();
echo empty($c) ? 'tühi' : 'olemas'; // tühi
 
$d = ' tere ';
echo empty($d) ? 'tühi' : 'olemas'; // olemas
?>

Konstantid

Konstanti väärtus ei muutu. Konstanti nimi ei ole tõstutundlik st Konstant ja KONSTANT on mõlemad samad konstantid. Konstant defineeritakse define funktisooniga:

define('OLEN_KONSTANT', 12);
echo OLEN_KONSTANT; // väljastatakse 12

Konstantidena on soovitatav kirjutada mySQL ühenduse andmed, töödeldavate failide nimed jms.

Seda kas konstant on juba defineeritud saab kontrollida funktsiooniga defined()

<?php
define('FAILINIMI', 'aadressid.txt');
 
if(defined('FAILINIMI'))
  echo FAILINIMI;
?>

Eeldefineeritud konstantid

PHP-s on terve rodu eeldefineeritud konstante, neid saab näha järgmiste ridade abil:

<pre>
<?php
print_r(get_defined_constants());
?>

…see väljastab sajad ning sajad nimed.

Mõned tihedamini vajaminevad konstantid on :

__FILE__ - skripti asukoht ja nimi failisüsteemis
__LINE__ - reanumber, millel antud konstant asub
__FUNCTION__ - kui see asub funktsioonis siis sisaldab vastavat funktsiooni nime
__CLASS__ - kui see asub classis siis sisaldab vastavat classi nime

Jatkame avaldistega.

 
muutujad_ja_konstantid.txt · Viimati muutnud: 2009/01/03 00:10 persoon laurik
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki