PHP da OOP da use buyrug'i va nomlar fazolari
Faraz qilaylik, bizda quyidagi Data klassi mavjud:
<?php
namespace \Core\Admin;
class Data
{
public function __construct($num)
{
}
}
?>
Shuningdek, faraz qilaylik, ichida Data klassining obyektlarini yaratadigan
Page klassi mavjud:
<?php
namespace Users;
class Page
{
public function __construct()
{
$data1 = new \Core\Admin\Data('1');
$data2 = new \Core\Admin\Data('2');
}
}
?>
Ko'rib turganingizdek, ikkala klassimiz ham
turli nomlar fazolarida joylashgan, shuning uchun
Data klassini chaqirishlarni oldingi
darsda qilganimizdek soddalashtirib bo'lmaydi.
Biroq, bu chaqirishlar juda uzun va
qulaysiz, chunki har bir Data klassini
chaqirishda uning uzun nomlar fazosini
ko'rsatishga to'g'ri keladi.
Bunday muammoni hal qilish uchun maxsus
use buyrug'i mavjud. Ushbu
buyruq yordamida klassni uning to'liq nomi
bilan bir marta ulash kifoya, shundan so'ng
bu klassga oddiygina klass nomi bilan murojaat
qilish mumkin bo'ladi. Misolni ko'ring:
<?php
namespace Users;
use \Core\Admin\Data; // klassni ulaymiz
class Page extends Controller
{
public function __construct()
{
$data1 = new Data('1'); // oddiy nom bilan chaqiramiz
$data2 = new Data('2'); // oddiy nom bilan chaqiramiz
}
}
?>
Quyidagi kodni use yordamida
soddalashtiring:
<?php
namespace Project;
class Test
{
public function __construct()
{
// Bir klassning 3 ta obyektini yaratamiz:
$data1 = new \Core\Users\Data('user1');
$data2 = new \Core\Users\Data('user3');
$data3 = new \Core\Users\Data('user3');
}
}
?>
Quyidagi klasslar berilgan:
<?php
namespace Core\Admin;
class Controller
{
}
?>
<?php
namespace Users;
class Page extends \Core\Admin\Controller
{
}
?>
use buyrug'ini qo'llab, klass meros olish
kodini soddalashtiring.