PHP: «использовать» внутри определения класса

Недавно я столкнулся с классом, который использует инструкцию use внутри определения класса.

Может кто-нибудь объяснить, что именно он делает, поскольку я не могу найти никакой информации об этом.

Я понимаю, что это может быть способ убрать его из глобальной области данного файла, но возможно ли это, что данный класс наследует и от нескольких родительских классов, – так как extends разрешает только одну ссылку на родительский класс?

Пример, который я видел, был в модели User оригинальной установки Laravel:

 <?php use Illuminate\Auth\UserTrait; use Illuminate\Auth\UserInterface; use Illuminate\Auth\Reminders\RemindableTrait; use Illuminate\Auth\Reminders\RemindableInterface; class User extends Eloquent implements UserInterface, RemindableInterface { use UserTrait, RemindableTrait; /** * The database table used by the model. * * @var string */ protected $table = 'users'; /** * The attributes excluded from the model's JSON form. * * @var array */ protected $hidden = array('password', 'remember_token'); } 

и я видел некоторые примеры этой модели, на самом деле использующие методы, включенные в класс UserTrait – следовательно, мое подозрение, но хотелось бы узнать больше о значении прилагаемых операторов use .

Документация PHP говорит:

Ключевое слово use должно быть объявлено в самой внешней области файла (глобальной области) или внутри декларации пространства имен. Это связано с тем, что импорт выполняется во время компиляции, а не во время выполнения, поэтому его нельзя блокировать. В следующем примере показано незаконное использование ключевого слова use:

а затем пример:

 namespace Languages; class Greenlandic { use Languages\Danish; ... } 

что указывает на неправильное use ключевого слова use – любые подсказки?

Related of "PHP: «использовать» внутри определения класса"

они называются признаками, которые используются с использованием инструкции «use», которая включена в php 5 oop, и они являются единичным наследованием для более подробной проверки

http://php.net/manual/en/language.oop5.traits.php