Почему мы используем \ вместо пространства имен? - PullRequest
0 голосов
/ 11 мая 2018

Я новичок в Laravel и видел, что когда мы используем Query Builder вместо Eloquent, как требуется, мы должны добавить пространство имен, то есть use Illuminate\Support\Facades\DB; или use DB; (как это упоминается в псевдонимах), чтобы используйте его, некоторые люди просто используют \DB при написании запроса.

Например. \DB->table('tasks')->where('id', 3)->get();

Что означает \ в соглашении о пространстве имен или что это означает здесь. При поиске ответов кто-то сказал мне, \ означает Global Namespace, но если это правда, что это на самом деле означает в этом контексте? Я использовал \ вместо App\Model_Name и получил ошибку. Почему так, если \ означает глобальное пространство имен?

1 Ответ

0 голосов
/ 11 мая 2018

В PHP есть хитрость для обращения к классам, расположенным в глобальном пространстве имен, мы просто ставим перед ними обратную (\) косую черту.

С обратной косой чертой (\) PHP знает, что мыссылаются на Class в глобальном пространстве имен и создают его.

Вы будете иметь ошибку при использовании (\), когда некоторые классы имеют одинаковые Class имена.

Пример:

Запрос * У класса 1019 * есть много пространств имен Illuminate\Support\Facades\Request и Illuminate\Http\Request, и когда вы пытаетесь использовать Запрос class для Illuminate\Http\Request class, и вы определили \Request вместо использования пространства имен, возникнет конфликт, и вы получите ошибку, когда класс не найден.

Это мое убеждение.Надеюсь, что это поможет вам немного понять.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...