127 votes

Visibilité par défaut des méthodes de classe en PHP

Je regarde le manuel mais je n'arrive pas à trouver la réponse.

Quelle est la visibilité par défaut en PHP pour les fonctions sans déclaration de visibilité. Est-ce que PHP a une visibilité de paquetage comme en Java ? Exemple :

class test {
  // is go public or private?
  function go() {

  }
}

La raison de ma question est que j'ai vu beaucoup de code de constructeurs écrits :

function __construct() et quelques public function __construct() . Sont-ils équivalents ?

191voto

Jansen Price Points 970

La valeur par défaut est publique.

Les méthodes des classes peuvent être définies comme publiques, privées ou protégées. Les méthodes déclarées sans mot-clé de visibilité explicite sont définies comme publiques.

http://www.php.net/manual/en/language.oop5.visibility.php

25voto

Johnco Points 1389

La valeur par défaut est public. C'est une bonne pratique de toujours l'inclure, cependant, PHP 4 supporte les classes sans modificateur d'accès, il est donc courant de ne pas les utiliser dans le code existant.

Et non, PHP n'a pas de visibilité des paquets, principalement parce que jusqu'à récemment, PHP n'avait pas de paquets.

11voto

Tomas Markauskas Points 6505

La valeur par défaut est publique. La raison en est probablement la rétrocompatibilité, car l'ancien code s'attend à ce qu'il soit public (il cesserait de fonctionner s'il n'était pas public).

7voto

Sunny Patwa Points 53

La visibilité par défaut est PUBLIC

Source :

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X