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, requirerequire_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$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.

0

Şərh yazmaq üçün hesabınıza daxil olun.