Thay đổi quyền truy cập vào các phương thức trait trong OOP PHP
Bên trong một trait, bạn có thể sử dụng bất kỳ bộ điều chỉnh truy cập nào cho các phương thức (tức là public, private hoặc protected). Tuy nhiên, nếu cần thiết, trong chính lớp, bạn có thể thay đổi bộ điều chỉnh này thành một bộ điều chỉnh khác. Để làm điều này, trong phần thân của use, sau từ khóa as, bạn cần chỉ định bộ điều chỉnh mới.
Hãy xem xét một ví dụ. Giả sử chúng ta có trait sau với một phương thức private:
<?php
trait TestTrait
{
private function method()
{
return '!!!';
}
}
?>
Hãy kết nối trait của chúng ta với một lớp:
<?php
class Test
{
use TestTrait;
}
?>
Hãy thay đổi phương thức trong lớp thành public:
<?php
class Test
{
use TestTrait {
TestTrait::method as public;
}
}
?>
Hãy kiểm tra hoạt động của phương thức public từ bên ngoài lớp:
<?php
$test = new Test;
echo $test->method(); // sẽ xuất ra '!!!'
?>