<?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)
当我删除类型提示和var_dump
该$连接变量时,它将是private Sandbox\Sandbox
而不是Sandbox\Connectors\ISandboxconnector
,为什么?
答案 0 :(得分:39)
PHP不支持字段上的类型提示。所以定义一个变量如下:
class Sandbox {
private $connection;
为了帮助编辑了解您的代码,您可以使用@var
标记来记录该字段的预期类型:
class Sandbox {
/** @var Connectors\ISandboxConnector */
private $connection;
答案 1 :(得分:1)
自PHP 7.4起,您可以在类属性上键入提示,如here所示。例如,您的$connection
属性如下所示:
class Sandbox {
private Connectors\ISandboxConnector $connection;
}