PHP.ee
 php.ee   linuxator.com   whee 
06.09.10 / 21:13
  PHP KKK
Logi sisse:
< nimi
< pass
Unustasid passi?
Kas eelistad võimalusel PHP koodi objektorienteeritult kirjutada?
 Jah, see teeb töö lihtsamaks
 Jah, see on lihtsalt lahe
 Nii ja naa, ei tunne erilist võitu
 Ei, mõttetu ajakulu
 Ei oska objektorienteeritult progeda
Tulemused
Mis vahet on include() ja require() ? Kuidas nad käituvad?

Küsimus:

Mis vahet on include() ja require()'el?


Vastus:

Põhierinevus seisneb selles, et include()'el ei ole fataalset mõju skripti tööle. See tähendab, et kui faili, mida sooviti lisada, ei õnnestunud lisada, siis PHP jätkab ülejäänud skripti parsimist. Kui aga require() puhul ei suudeta vajalikku faili leida, siis skript katkestab töö.

Samuti on mõlemal keelekonstruktsioonil olemas ka sõsarad: include_once() ja require_once(), mis erinevad oma vanematest selle poolest, et ei lase ühte ja sama faili mitu korda lisada. Nt:

PHP kood:


 
<?php
include_once('kala.php');
include_once(
'kala.php');
?>


Lisab kala.php ainult ühe korra. Muud erinevust neil ei ole.

Kasutamine

Kui include või require abil faile lisada, siis iga lisatud faili alguses asub PHP seda parsima kui HTMLI'i - st kui lisatud faili on soov PHP'd kirjutada, siis tuleb lisatavas failis uuesti PHP täägid avada ja sulgeda.

Lisatud failides saab kasutada juba defineeritud muutujaid. Samuti käituvad lisatud failid kui sama skripti osa - st PHP jaoks on lisatud faili sisu include() asemel. Ehk kaks järgmist näidet on PHP jaoks võrdväärsed:
Näide 1:

PHP kood:


 
<?php
/*inc.php*/
echo "Meie kala, kes on $kala, lemmiksöök on $loom. ";
$varv='sinine';
?>

<?php
/*main.php*/
$kala='ahven';
$loom='teerull';
include(
'inc.php');
echo 
"Eriti $varv $loom";
?>



Näide 2:

PHP kood:


 
<?php
/*main.php*/
$kala='ahven';
$loom='teerull';
echo 
"Meie kala, kes on $kala, lemmiksöök on $loom. ";
$varv='sinine';
echo 
"Eriti $varv $loom";
?>



Mõlemal juhul on tulemuseks:

Meie kala, kes on ahven, lemmiksöök on teerull. Eriti sinine teerull


Ehk tõestasime ära, et eelnevalt defineeritud muutujaid saab kasutada include'tud failis ning ka lisatud failis defineeritud muutujaid saab kasutada edaspidises koodis.

O