Php, слеш перед именем класса

Здравствуйте.
Вопрос такой:
$date = new \DateTime(); - для чего поставлен слеш перед именем класса?
Для чего его вообще ставить, и в каких случаях.
  • Вопрос задан
  • 6549 просмотров
Решения вопроса 2
janson
@janson
PHP-разработчик
1. Читаем мануал по namespace в PHP. Обязательно пригодится.
2. Запись \DateTime() означает, что нужно использовать встроенный тип DateTime() который есть в PHP (он находится в корне пространств имён, т.е. начинается с '\' хотя если нет конфликтов, то слэш можно не указывать). Например у вас есть свой класс DateTime, находящийся в вашем собственном пространстве имён MySpace.

Какой-то ваш файл app/MySpace/DateTime.php:
<?php
namespace MySpace;

class DateTime {...}


Где-то в своём index.php вы используете его:
<?php
...
...
require_once 'app/MySpace/DateTime.php';

// если мы хотим создать объект СВОЕГО КЛАССА:
$myDateTime = new \MySpace\DateTime();

//Или так:
use \MySpace\DateTime;
$myDateTime2 = new DateTime();

// а вот если хотим использовать встроенный класс DateTime в данной ситуации:
$intDateTime = new \DateTime();


Так что, если вы хотите использовать в определённый момент именно встроенный тип данных PHP, то безопаснее вписать слэш перед именем файла - избавляемся от неоднозначностей.
Ответ написан
Комментировать
egor_nullptr
@egor_nullptr
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы