⊗ppOpNsSN 97 of 107 menu

Ruang Nama Sub dalam OOP dalam PHP

Sekarang mari kita andaikan situasi yang lebih kompleks: untuk admin, dua kelas Page diperlukan - satu untuk data halaman, dan satu lagi untuk paparan data tersebut. Katakan kelas pertama terletak dalam fail /admin/data/page.php, dan kelas kedua - dalam fail /admin/view/page.php.

Dalam pelajaran sebelumnya, kita telah memutuskan bahawa semua kelas dari folder admin akan tergolong dalam ruang nama Admin. Walau bagaimanapun, sekarang dalam ruang nama yang sama, kita mempunyai konflik antara dua kelas. Untuk menyelesaikan masalah ini, ruang nama sub tambahan boleh dibuat. Sebagai contoh, ruang nama Admin boleh dibuat, dan di dalamnya ruang nama sub Data dan View. Dalam kes ini, nama ruang nama sub ini hanya ditulis menggunakan garis miring belakang - sama ada ketika menetapkan ruang nama atau ketika mencipta objek kelas.

Perlu dijelaskan di sini bahawa tahap nesting ruang nama sub adalah tidak terhad (anda boleh mencipta ruang nama sub dalam ruang nama sub dan sebagainya).

Jadi, mari kita selesaikan contoh yang dijelaskan di atas. Untuk kelas Page dari fail /admin/data/page.php, tetapkan ruang nama Admin\Data:

<?php namespace Admin\Data; class Page { } ?>

Untuk kelas Page dari fail /admin/view/page.php, tetapkan ruang nama Admin\View:

<?php namespace Admin\View; class Page { } ?>

Mari cipta objek kelas kita:

<?php require_once '/admin/data/page.php'; require_once '/admin/view/page.php'; $adminDataPage = new \Admin\Data\Page; $adminViewPage = new \Admin\View\Page; ?>

Andaikan anda mempunyai folder modules/cart. Pastikan semua kelas dari folder ini tergolong dalam ruang nama Modules\Cart.

Andaikan anda mempunyai folder modules/shop/cart/. Pastikan semua kelas dari folder ini tergolong dalam ruang nama Modules\Shop\Cart.

msdauzcuzlhy