⊗ppOpNsCU 101 of 107 menu

use ბრძანება და ნეიმსფეისები PHP-ის OOP-ში

დავუშვათ გვაქვს შემდეგი კლასი Data:

<?php namespace \Core\Admin; class Data { public function __construct($num) { } } ?>

დავუშვათ ასევე არის კლასი Page, რომელიც ქმნის თავის შიგნით Data კლასის ობიექტებს:

<?php namespace Users; class Page { public function __construct() { $data1 = new \Core\Admin\Data('1'); $data2 = new \Core\Admin\Data('2'); } } ?>

როგორც ხედავთ, ჩვენი ორივე კლასი მდებარეობს სრულიად სხვადასხვა ნეიმსფეისებში, ამიტომ Data კლასის გამოძახებების გამარტივება შეუძლებელია, ისე, როგორც ეს წინა გაკვეთილზე გავაკეთეთ. თუმცა, ეს გამოძახებები ძალიან გრძელი და მოუხერხებელია, რადგან Data კლასის ყოველ გამოძახებაში მოგვიწევს მისი გრძელი ნეიმსფეისის მითითება.

მსგავსი პრობლემის გადასაჭრელად არსებობს სპეციალური ბრძანება use. ამ ბრძანების საშუალებით საკმარისია კლასი მხოლოდ ერთხელ მივაკავშიროთ მისი სრული სახელით, და ამის შემდეგ ამ კლასთან მიმართვა შესაძლებელი იქნება უბრალოდ კლასის სახელით. ნახეთ მაგალითი:

<?php namespace Users; use \Core\Admin\Data; // ვაკავშირებთ კლასს class Page extends Controller { public function __construct() { $data1 = new Data('1'); // ვუწოდებთ უბრალოდ სახელით $data2 = new Data('2'); // ვუწოდებთ უბრალოდ სახელით } } ?>

გაამარტივეთ შემდეგი კოდი use-ის გამოყენებით:

<?php namespace Project; class Test { public function __construct() { // ვქმნით ერთი კლასის 3 ობიექტს: $data1 = new \Core\Users\Data('user1'); $data2 = new \Core\Users\Data('user3'); $data3 = new \Core\Users\Data('user3'); } } ?>

მოცემულია შემდეგი კლასები:

<?php namespace Core\Admin; class Controller { } ?>
<?php namespace Users; class Page extends \Core\Admin\Controller { } ?>

გაამარტივეთ კლასის მემკვიდრეობით მიღების კოდი, გამოიყენეთ ბრძანება use.

azbydeenesfrkakkptruuz