2010-09-08 8 views
0

Si j'ai une classe et que je veux avoir des variables statiques, quelle serait la bonne façon de les déclarer?Quelle est la différence entre const et static vars?

Par exemple

class Foo {
      public static $ var1
      statique $ var2
      statique $ var3 publique

publique

      .. ....

}

OU

class Foo {
      const $ var1
      const $ var2
      const $ var3

      ......

}

les deux sens Permettez-moi de Foo :: var1. Mais je ne sais pas bien ce qui est la bonne façon et/ou s'il y a un quelconque usage d'un côté ou de l'autre.

+0

Copie possible de http://stackoverflow.com/questions/1685922/php5-const-vs-static et http://stackoverflow.com/questions/4163975/php-oop-constant-vs-static-variables. – johankj

Répondre

4

const Les variables ne peuvent pas être modifiées. Les static peuvent. Utilisez le bon pour ce que vous essayez de faire.

0

class Foo{const $var1....} est une erreur de syntaxe (ne pas besoin $ après const)

0

En conventional coding standards nous nommons consts comme Foo::CONST1 en majuscules sans $ au nom. Vous n'avez donc pas besoin d'être confondu entre les consts et les variables.

Comme d'autres l'ont noté, vous définissez la valeur class constant une fois, et vous ne pouvez pas modifier cette valeur pendant le reste d'une requête PHP donnée. Considérant que vous pouvez changer la valeur d'un static class variable autant de fois que vous le souhaitez.