Interface PHP: Spécifier la visibilité pour la

Je suis en train de faire une interface pour un ensemble de classes. J'ai un problème, toutefois, parce que je souhaite pour tout visibilité pour être admis dans l'interface (Qui est: public, protected et private).

J'ai besoin de la méthode parent d'être protégé et j'ai besoin de l'enfant de la méthode pour être privé, mais j'obtiens un message d'erreur indiquant que

Erreur fatale: le type d'Accès pour la méthode de l'interface Baz::qux() doit être omis dans <le fichier avec Baz/Barre>."

J'ai essayé d'indiquer d'autres méthodes de publicité dans la section Baz et la suppression de public, mais ils ont tous échoué.

Est-il un moyen que je peux le faire via l'interface? Si non, alors est il possible que je peux déclarer abstract, j'ai essayé, mais a échoué.

interface Baz
{
    public function qux();
}

class Bar implements Baz
{
    protected function qux()
    {
        //do foo
    }
}

class Foo extends Bar implements Baz
{
    private function qux()
    {
        parent::qux();
    }
}
  • Chaque fois que vous semblez besoin d'une telle chose, c'est généralement une bonne indication que quelque chose est incorrect avec votre concept.
  • Une interface est juste un fil de fer alors pourquoi vous vous souciez de la visibilité en elle
  • Mes excuses, maintenant je le sais. Merci pour l'info de tous.
  • PHP soulève même message d'erreur lorsque vous spécifiez la méthode que abstract. Par exemple: abstract public function qux();
InformationsquelleAutor TheFrack | 2012-10-15