PHP
Faylların qoşulması
PHP proqramlaşdırma dilində yazılmış saytlar minlərlə kod sətrindən ibarət olur. Bütün kodu bir faylda yazmaq isə əlverişli deyil, ona görə müxtəlif fayllardan istifadə edilir. PHP-də digər fayllarda yerləşən koda giriş əldə etmək üçün 4 xüsusi konstruksiyadan ibarət qoşulma mexanizmi reallaşdırılıb: include
, include_once
, require
və require_once
.
"learn-php" qovluğunda yerləşən index.php faylına aşağıdakı kodu yazırıq:
<?php
echo __DIR__;
Brauzerdə http://learn-php/index.php ünvanına daxil oluruq:
D:\OpenServer\domains\learn-php
__DIR__ sehrli konstantı vasitəsilə cari skriptin yerləşdiyi qovluğun yolu göstərilir.
Bundan sonra "learn-php" qovluğunda lib.php adlı fayl yaradırıq və aşağıdakı kodu ona əlavə edirik:
<?php
$name = 'Emil';
$age = 36;
$city = 'Sumgait';
index.php faylına isə aşağıdakı kodu əlavə edirik:
<?php
error_reporting(-1);
echo "My name is $name. I'm $age old. I live in $city.";
Brauzerdə http://learn-php/index.php ünvanına daxil oluruq:
Göründüyü kimi "Warning" tipli 3 xəta qeydə alındı. index.php faylının koduna diqqət etsək, həqiqətən, $name
, $age
və $city
dəyişənlərinin mövcud olmadığına əmin olarıq. Həmin dəyişənlər lib.php faylında yaradılıb və onlara qiymət mənimsədilib. Elə isə gəlin lib.php faylını require
konstruksiyası vasitəsilə index.php faylına qoşaq:
<?php
error_reporting(-1);
require __DIR__ . '/lib.php';
echo "My name is $name. I'm $age old. I live in $city.";
Brauzerdə http://learn-php/index.php ünvanına daxil oluruq:
require və include arasındakı fərq
Əgər yuxarıdakı nümunədə index.php faylında require
konstruksiyasını include
ilə əvəz etsək, kod olduğu kimi işləyəcək:
include __DIR__ . '/lib.php';
Bu iki konstruksiya arasında fərq ondan ibarətdir ki, include
konstruksiyasından istifadə zamanı qoşulan fayl tapılmadıqda, "Warning" tipli xəta qeydə alınır, lakin skript işləməyə davam edir. require
konstruksiyasından istifadə zamanı isə qoşulan fayl tapılmadıqda, "Fatal error" tipli xəta qeydə alınır və skript öz işini dayandırır.
Gəlin index.php faylının koduna elə dəyişiklik edək ki, qoşulan fayl tapılmasın. Bu məqsədlə, məsələn, qoşulan faylın adını dəyişmək olar:
<?php
error_reporting(-1);
require __DIR__ . '/abc.php';
echo "My name is $name. I'm $age old. I live in $city.";
İndi isə brauzerdə http://learn-php/index.php ünvanına daxil olaq:
Göründüyü kimi, require
konstruksiyasından istifadə zamanı qoşulan fayl tapılmadıqda "Fatal error" tipli xəta qeydə alındı və skript öz işini dayandırdı.
İndi isə index.php faylında sadəcə require
direktivini include
konstruksiyasına dəyişək:
<?php
error_reporting(-1);
include __DIR__ . '/abc.php';
echo "My name is $name. I'm $age old. I live in $city.";
Və brauzerdə http://learn-php/index.php ünvanına daxil olaq:
Göründüyü kimi, include
konstruksiyasından istifadə zamanı qoşulan fayl tapılmadıqda "Warning" tipli xəta qeydə alındı, lakin skript işləməyə davam edib.
PHP interpretatoru faylları necə tapır?
Əgər require
və ya include
direktivində faylın yolu tam (Mac OS X və Linux sistemlərində / simvolu ilə başlayır, Windows-da isə diskin adı və ya \ simvolu istifadə edilir) və ya cari qovluğa nisbi (./ və ../) göstərilibsə, PHP interpretatoru faylları göstərilmiş yerdə axtarır.
Digər hallarda PHP interpretatoru include_path
direktivində göstərilmiş fayl yollarından istifadə edilir. Əgər fayl həmin direktivdə göstərilmiş qovluqlarda tapılmasa, PHP interpretatoru faylın yerləşdiyi qovluğu yoxlayır.
Şərh yazmaq üçün hesabınıza daxil olun.