Зарегистрируйтесь для доступа к 15+ бесплатным курсам по программированию с тренажером

Импорт функций Основы PHP

Ничего не дается бесплатно, в том числе и пространства имен. Вызовы функций становятся длинными и неудобными.

<?php

namespace Generator;

function generate($data)
{
    return \Formatters\Pretty\render($data);
}

Представьте, что будет, если понадобится вызвать эту функцию много раз. В глазах очень быстро начнет рябить от обратных слешей. Для решения этой задачи придумали механизм импорта. С его помощью можно "импортировать" функцию в текущее пространство имен так, как будто она определена прямо здесь:

<?php

require_once(__DIR__ . '/src/Formatters/Pretty.php');

namespace Generator;

use function Formatters\Pretty\render;

function generate($data)
{
    return render($data);
}

Импорт функции, выполняется оператором use, за которым идет ключевое слово function и затем полный путь до функции с указанием всех его пространств имен, без обратного слеша вначале. Количество импортов ничем не ограничено. Их используют и добавляют исключительно по соображениям удобства:

<?php

// подключаем файл, в котором определены функции:
// cons(), car(), cdr(), toString()
require_once(__DIR__ . '/src/Pairs.php');

namespace Php\Pairs\Data\Lists;

use function Php\Pairs\Pairs\cons;
use function Php\Pairs\Pairs\car;
use function Php\Pairs\Pairs\cdr;
use function Php\Pairs\Pairs\toString;

Изредка случаются ситуации, когда хочется импортировать функцию, но в текущем пространстве либо уже определена функция с таким именем, либо функция с таким именем была импортирована ранее из другого пространства имен. Сделать это можно через алиасы (псевдонимы) — механизм, позволяющий переименовывать импортируемые функции.

<?php

require_once(__DIR__ . '/src/Formatters/Pretty.php');
require_once(__DIR__ . '/src/Formatters/Simple.php');

namespace Generator;

use function Formatters\Pretty\render;
use function Formatters\Simple\render as simpleRender;

function generate($data)
{
    return simpleRender($data);
}

Для переименования достаточно в конце импорта добавить ключевое слово as, а затем имя, под которым функция должна стать доступна.


Аватары экспертов Хекслета

Остались вопросы? Задайте их в разделе «Обсуждение»

Вам ответят команда поддержки Хекслета или другие студенты.

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно.

  • 130 курсов, 2000+ часов теории
  • 1000 практических заданий в браузере
  • 360 000 студентов
Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и соглашаетесь с «Условиями использования»

Наши выпускники работают в компаниях:

Логотип компании Альфа Банк
Логотип компании Aviasales
Логотип компании Yandex
Логотип компании Tinkoff
Рекомендуемые программы

С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.

Иконка программы PHP-разработчик
Профессия
с нуля
Разработка веб-приложений на Laravel
1 декабря 10 месяцев

Используйте Хекслет по-максимуму!

  • Задавайте вопросы по уроку
  • Проверяйте знания в квизах
  • Проходите практику прямо в браузере
  • Отслеживайте свой прогресс

Зарегистрируйтесь или войдите в свой аккаунт

Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и соглашаетесь с «Условиями использования»