Подтвердить что ты не робот

Тип подсказки в переменных класса

<?php

namespace Sandbox;

class Sandbox {

    private Connectors\ISandboxConnector $connection;

    public function __construct(Connectors\ISandboxConnector $conn) {
        $this->connection = $conn;
    }

}

?>

Для приведенного выше кода я получаю следующую ошибку:

Parse error: syntax error, unexpected 'Connectors' (T_STRING), expecting variable (T_VARIABLE)

Когда я удаляю тип hinting и var_dump, что переменная $connection, это будет private Sandbox\Sandbox, а не Sandbox\Connectors\ISandboxconnector, почему?

4b9b3361

Ответ 1

PHP не поддерживает тип намека на поля. Поэтому определите переменную, как показано ниже:

class Sandbox {
    private $connection;

Чтобы помочь редакторам понять ваш код, вы можете использовать тег @var для документирования ожидаемого типа поля:

class Sandbox {
    /** @var Connectors\ISandboxConnector */
    private $connection;