Arahan use dan Ruang Nama dalam OOP dalam PHP
Katakan kita mempunyai kelas Data berikut:
<?php
namespace \Core\Admin;
class Data
{
public function __construct($num)
{
}
}
?>
Katakan juga terdapat kelas Page, yang mencipta
objek kelas Data di dalamnya:
<?php
namespace Users;
class Page
{
public function __construct()
{
$data1 = new \Core\Admin\Data('1');
$data2 = new \Core\Admin\Data('2');
}
}
?>
Seperti yang anda lihat, kedua-dua kelas kami berada
dalam ruang nama yang berbeza sama sekali, oleh itu
panggilan kelas Data tidak boleh dipermudahkan,
seperti yang kita lakukan dalam pelajaran
sebelumnya. Walau bagaimanapun, panggilan ini sangat panjang
dan menyusahkan, kerana dalam setiap panggilan kelas
Data perlu menyatakan ruang namanya yang panjang.
Untuk menyelesaikan masalah seperti ini, terdapat
arahan khas use. Dengan menggunakan
arahan ini, cukup untuk menyambungkan
kelas sekali dengan nama penuhnya, dan selepas itu
kelas ini boleh diakses hanya
dengan nama kelasnya. Lihat contoh:
<?php
namespace Users;
use \Core\Admin\Data; // sambungkan kelas
class Page extends Controller
{
public function __construct()
{
$data1 = new Data('1'); // panggil hanya dengan nama
$data2 = new Data('2'); // panggil hanya dengan nama
}
}
?>
Permudahkan kod berikut dengan menggunakan
use:
<?php
namespace Project;
class Test
{
public function __construct()
{
// Cipta 3 objek daripada satu kelas:
$data1 = new \Core\Users\Data('user1');
$data2 = new \Core\Users\Data('user3');
$data3 = new \Core\Users\Data('user3');
}
}
?>
Diberi kelas berikut:
<?php
namespace Core\Admin;
class Controller
{
}
?>
<?php
namespace Users;
class Page extends \Core\Admin\Controller
{
}
?>
Permudahkan kod pewarisan kelas dengan menggunakan
arahan use.