web-dev-qa-db-ja.com

クラス変数の型ヒント

<?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になります。なぜですか?

33
Gerben Jacobs

PHPはフィールドの型ヒントをサポートしていません。したがって、以下のように変数を定義します。

class Sandbox {
    private $connection;

エディターがあなたのコードを理解するのを助けるために、あなたは @var フィールドの予想されるタイプを文書化するタグ:

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