在类变量中键入提示

Ger*_*obs 30 php oop type-hinting

<?php

namespace Sandbox;

class Sandbox {

    private Connectors\ISandboxConnector $connection;

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

}

?>
Run Code Online (Sandbox Code Playgroud)

对于上面的代码我收到以下错误:

Parse error: syntax error, unexpected 'Connectors' (T_STRING), expecting variable (T_VARIABLE)
Run Code Online (Sandbox Code Playgroud)

当我删除类型提示和var_dump$连接变量时,它将是,private Sandbox\Sandbox而不是Sandbox\Connectors\ISandboxconnector,为什么?

Vah*_*aji 41

PHP不支持字段上的类型提示.所以定义一个变量如下:

class Sandbox {
    private $connection;
Run Code Online (Sandbox Code Playgroud)

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

class Sandbox {
    /** @var Connectors\ISandboxConnector */
    private $connection;
Run Code Online (Sandbox Code Playgroud)

  • 在Netbeans中工作. (3认同)
  • 适用于PhpStorm. (3认同)
  • 他们应该在变量中添加类型提示。他们有函数参数,为什么要停在那里。 (3认同)
  • 我刚刚发表了一篇关于所有可用类型提示类型与PHP版本的文章:https://mlocati.github.io/articles/php-type-hinting.html (2认同)