Тип подсказки в переменных класса
<?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
, почему?
Ответы
Ответ 1
PHP не поддерживает тип намека на поля. Поэтому определите переменную, как показано ниже:
class Sandbox {
private $connection;
Чтобы помочь редакторам понять ваш код, вы можете использовать тег @var
для документирования ожидаемого типа поля:
class Sandbox {
/** @var Connectors\ISandboxConnector */
private $connection;