类变量中的类型提示

格本·雅各布斯
<?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$ connection变量时,它将是,private Sandbox\Sandbox而不是Sandbox\Connectors\ISandboxconnector,为什么?

瓦希德·哈拉吉

PHP 7.3及以下版本不支持类型化属性。您只能按以下方式定义变量:

class Sandbox {
    private $connection;

但是,为了帮助编辑者理解您的代码,您可以使用@var标记来记录属性的预期类型:

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

更新资料

PHP 7.4.0

感谢@Manuel提到新的更新,PHP 7.4现在根据PHP RFC引入了类型化属性:Typed Properties 2.0

物业类型声明支持PHP支持的所有类型声明,与异常voidcallable还支持任何类或接口名称,stdClass,标量和复合类型,对父对象和自己对象的引用。

class Sandbox {
    public int $id;
    public string $name;
    private Connectors\ISandboxConnector $connection;
}

注意:注意副作用,例如未初始化状态和继承严格的规则。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

类型提示类尚未导入

来自分类Dev

类字段/实例变量的Pycharm类型提示

来自分类Dev

类型提示时,使用JAVA中的包装器类

来自分类Dev

在子类Java中更改类变量类型

来自分类Dev

类中通用类型的scala变量数

来自分类Dev

类型提示:类型类参数

来自分类Dev

在带有Scala的Intellij中显示类型变量的工具提示

来自分类Dev

父类中已更改的变量类型

来自分类Dev

枚举类类型的变量

来自分类Dev

界面中的类型提示

来自分类Dev

类A的方法中类型A的参数的类型提示

来自分类Dev

Python:如何提示类变量?

来自分类Dev

如何在python中的“类”类型中添加类型提示

来自分类Dev

在带有类型提示的方法外的python类中声明的实例变量

来自分类Dev

对象是类中的变量类型还是变量名称?

来自分类Dev

泛型类型类的正确类型提示

来自分类Dev

在具有泛型类型的类中定义的数据类的类型提示

来自分类Dev

类__init__中的TypeVar类型提示

来自分类Dev

类类型的Javascript变量

来自分类Dev

返回类型是类中的变量

来自分类Dev

显示类方法的类型提示

来自分类Dev

基类中基类子类型的成员变量

来自分类Dev

类型提示类或接口?

来自分类Dev

当类类型存储在变量中时,如何创建类的实例?

来自分类Dev

类A的方法中类型A的参数的类型提示

来自分类Dev

Scala 中的抽象类型、变量和类型类

来自分类Dev

类中的变量类型:最佳编程实践

来自分类Dev

PhpStorm 不类型提示类方法返回 trait 中的类型

来自分类Dev

在 Java 中创建类类型的变量