Перейти к содержимому

callable

Тип callable в PHP: полное руководство

Как разработчик на PHP, вы, вероятно, встречали типизацию callable в своём коде, особенно при работе с функциями или методами. Эта типизация позволяет указать, что параметр, свойство или возвращаемое значение должно быть допустимым обратным вызовом. В этой статье мы подробно рассмотрим синтаксис и использование типизации callable, а также приведём множество примеров, которые помогут вам освоить эту важную функцию PHP.

Синтаксис

Типизация callable используется для обеспечения того, чтобы параметр, свойство или возвращаемое значение принимало допустимый обратный вызов. Ниже приведён базовый синтаксис использования типизации callable в PHP:

Синтаксис callable в PHP

php
<?php

function myFunction(callable $callback) {
  // Code to execute using the callback function or method
}

В этом примере типизация callable используется для определения параметра $callback как функции или метода, которые могут быть вызваны позже в коде.

Примеры

Рассмотрим несколько практических примеров использования типизации callable:

Пример использования callable в PHP

php
<?php

// Example 1
function myFunction(callable $callback): string
{
    $result = $callback();
    return $result;
}

function myCallback(): string
{
    return "Hello world!";
}

// String callables are supported since PHP 5.3
echo myFunction("myCallback") . PHP_EOL;

// Output: Hello world!

// Example 2
class MyClass
{
    public function myMethod(): string
    {
        return "Hello world!";
    }
}

$myObject = new MyClass();

echo myFunction([$myObject, "myMethod"]);

// Output: Hello world!

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

Преимущества

Использование типизации callable имеет несколько преимуществ, включая:

  • Безопасность типов: Гарантирует передачу только допустимых обратных вызовов, предотвращая ошибки времени выполнения из-за некорректных имён функций или методов.
  • Поддержка IDE: Обеспечивает лучшее автодополнение и статический анализ в современных IDE и инструментах, таких как PHPStan или Psalm.
  • Проверка во время выполнения: Выявляет некорректные обратные вызовы на ранних этапах разработки, упрощая отладку и повышая надёжность кода.

Заключение

Подводя итог, типизация callable — это мощный инструмент для разработчиков на PHP, позволяющий гарантировать, что параметры, свойства или возвращаемые значения принимают допустимые обратные вызовы. Мы надеемся, что это подробное руководство было полезным, и желаем успехов в дальнейшем изучении PHP.

Практика

Что обозначает 'callable' в PHP?

Считаете ли это полезным?

Предпросмотр dual-run — сравните с маршрутами Symfony на продакшене.