web-dev-qa-db-fra.com

Indication de type dans les variables de classe

<?php

namespace Sandbox;

class Sandbox {

    private Connectors\ISandboxConnector $connection;

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

}

?>

Pour le code ci-dessus, j'obtiens l'erreur suivante:

Parse error: syntax error, unexpected 'Connectors' (T_STRING), expecting variable (T_VARIABLE)

Lorsque je supprime l'indicateur de type et var_dump cette variable de connexion $, ce sera private Sandbox\Sandbox et pas Sandbox\Connectors\ISandboxconnector, Pourquoi?

33
Gerben Jacobs

PHP ne prend pas en charge l'indication de type sur les champs. Définissez donc une variable comme ci-dessous:

class Sandbox {
    private $connection;

Pour aider les éditeurs à comprendre votre code, vous pouvez utiliser un @var balise pour documenter le type attendu du champ:

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