437 votes

Que fait le mot-clé PHP "var" ?

C'est probablement une question très triviale, mais je n'ai pas réussi à trouver la réponse ni dans les moteurs de recherche, ni sur php.net. Si vous n'avez pas le temps de m'expliquer, merci de m'indiquer où je peux trouver des informations à ce sujet.

  1. Que signifie le mot clé "var" en PHP ?
  2. Y a-t-il des différences entre PHP4 et PHP5 ?

4 votes

Je suppose que lorsque vous avez posé cette question le 30 juillet 2009, l'article n'avait pas encore été publié à l'adresse suivante php.net/manual/fr/language.oop5.visibility.php ? : "Note : La méthode PHP 4 de déclaration d'une variable avec le mot-clé var est toujours supportée pour des raisons de compatibilité (en tant que synonyme du mot-clé public). En PHP 5 avant la version 5.1.3, son utilisation génère un avertissement E_STRICT." Ou peut-être n'avez-vous pas trouvé. Mais la réponse est clairement indiquée sur php.net.

0 votes

C'est vraiment incroyable de voir les voyages que PHP a effectués au cours de ces années !

394voto

karim79 Points 178055

Il sert à déclarer les variables des membres de la classe en PHP4, et n'est plus nécessaire. Elle fonctionnera en PHP5, mais soulèvera une erreur de type E_STRICT en PHP depuis la version 5.0.0 jusqu'à la version 5.1.2, à partir du moment où il a été déprécié. Depuis PHP 5.3, var n'est plus déprécié et est un synonyme de "public".

Exemple d'utilisation :

class foo {
    var $x = 'y'; // or you can use public like...
    public $x = 'y'; //this is also a class member variables.
    function bar() {
    }
}

10 votes

_"Note : La méthode PHP 4 de déclaration d'une variable avec l'option var est toujours pris en charge pour des raisons de compatibilité (en tant que synonyme du mot-clé public mot-clé). En PHP 5 avant la version 5.1.3, son utilisation générait une erreur de type E_STRICT avertissement"._ php.net/manual/fr/language.oop5.visibility.php EDIT : Je viens de voir que cela a déjà été cité. dans une autre réponse . Mais vous devez modifier les vôtres en conséquence.

0 votes

Cela implique qu'il est nécessaire pour utiliser le public pour une variable membre. Est-ce vrai ? Ne peut-on pas simplement mettre $x; ?

1 votes

Il est donc recommandé de s'en tenir à public/private et d'ignorer complètement var puisque nous ne sommes pas préoccupés par le fait de travailler avec des versions obsolètes de PHP ?

79voto

Gumbo Points 279147

En var Le mot clé est utilisé pour déclarer des variables dans une classe en PHP 4 :

class Foo {
    var $bar;
}

Avec PHP 5 visibilité des propriétés et des méthodes ( public , protected y private ) a été introduite et donc var est obsolète.

17 votes

En PHP 5.3 var est déprécié :)

8 votes

Si elle est supprimée, quelle est la meilleure pratique dans la version 5.3 - l'utiliser ou ne pas l'utiliser ? Peut-on l'utiliser comme private var $foo = 'bar'; ?

1 votes

Quelqu'un sait-il pourquoi il a été supprimé ?

27voto

taatparya Points 11

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

Note : La méthode PHP 4 de déclaration d'une variable avec le mot-clé var est toujours supportée pour des raisons de compatibilité (en tant que synonyme du mot-clé public). En PHP 5 avant la version 5.1.3, son utilisation générait une erreur de type E_STRICT l'avertissement.

0 votes

J'ai fait des tests. Aucun E_STRICT n'a été renvoyé ! sandbox.onlinephpfunctions.com/code/

1 votes

@WallacedeSouza, c'est parce que vous avez utilisé PHP 7 dans votre exemple. Il n'était invalide que dans les versions 5.0 - 5.1.3.

8voto

Webeng Points 5248

Réponse : De php 5.3 et > El var Le mot-clé est équivalent à public lors de la déclaration de variables à l'intérieur d'une classe.

class myClass {
  var $x;
}

est le même que (pour les php 5.3 et > ) :

class myClass {
  public $x;
}

L'histoire : C'était auparavant la norme pour déclarer les variables dans les classes, bien que cela ait été déprécié par la suite, mais plus tard (PHP 5.3), cela n'a plus été déprécié.

7voto

kta Points 4702

Il s'agit donc d'un vieux style et il ne faut pas l'utiliser pour les versions plus récentes de PHP. Mieux vaut utiliser le mot-clé Public à la place ; si vous n'êtes pas amoureux du mot-clé var. Ainsi, au lieu d'utiliser

class Test {
    var $name;
}

Utilice

class Test {
   public $name;
}

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