2009-07-30 21 views
370

Esta es probablemente una pregunta muy trivial, pero no he podido encontrar la respuesta ni a través de los motores de búsqueda web, ni en php.net. Dirígeme a donde pueda leer sobre esto, si no tiene tiempo para explicarme.¿Qué significa la palabra clave PHP 'var'?

  1. ¿Qué significa la palabra clave 'var' en PHP?
  2. ¿Hay alguna diferencia entre PHP4 y PHP5?
+1

supongo que cuando esta pregunta el 30 de julio de 2009, este aún no se había publicado en http://php.net/manual/en/language.oop5.visibility.php ?: "Nota: El método de PHP 4 de declarar una variable con la palabra clave var todavía es compatible por razones de compatibilidad (como un sinónimo de la palabra clave public). En PHP 5 antes de 5.1.3, su uso generaría una advertencia E_STRICT ". O tal vez no lo has encontrado. Pero la respuesta está claramente establecida en php.net. –

Respuesta

330

Es para declarar variables de miembro de clase en PHP4, y ya no es necesario. Funcionará en PHP5, pero generará una advertencia de E_STRICT en PHP desde la versión 5.0.0 hasta la versión 5.1.2, desde el momento en que se desactivó. Desde PHP 5.3, var ha sido desaprobado y es un sinónimo de 'public'.

Ejemplo de uso:

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

_ "Nota: El método PHP 4 de declarar una variable con la palabra clave' var' aún se admite por razones de compatibilidad (como sinónimo de la palabra clave 'public'). En PHP 5 antes de 5.1.3, su uso generaría una 'E_STRICT' warning." _ Http://php.net/manual/en/language.oop5.visibility.php EDITAR: Acabo de ver que ya se ha citado [en otra respuesta] (http://stackoverflow.com/a/3844703/517705). Pero deberías editar el tuyo en consecuencia. – Sk8erPeter

+0

Esto implica que es * necesario * utilizar la palabra clave 'public' para una variable miembro. ¿Es eso cierto? ¿No se puede simplemente poner '$ x;'? – BrassApparatus

+0

, por lo tanto, ¿es recomendable limitarse a público/privado e ignorar por completo a var porque no nos preocupa trabajar con versiones obsoletas de PHP? –

70

La palabra clave var se utiliza para declare variables in a class in PHP 4:

class Foo { 
    var $bar; 
} 

Con PHP 5 property and method visibility (public, protected y private) fue introducido y por lo tanto está en desuso var.

+13

En PHP 5.3 'var' está desaprobado :) –

+8

Si está desaprobado, ¿cuál es la mejor práctica ahora en 5.3 - usarlo o no? ¿Puedes usarlo como 'private var $ foo = 'bar';'? –

+1

¿Alguien sabe por qué fue desaprobado? –

23

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

Nota: El método de PHP 4 de declarar una variable con la palabra clave var todavía se soporta por razones de compatibilidad (como sinónimo de la palabra clave pública). En PHP 5 antes de 5.1.3, su uso generaría una advertencia E_STRICT.

+0

Hice pruebas. No devuelto E_STRICT! http://sandbox.onlinephpfunctions.com/code/84652903a92588c23085e688803abfaf0c26a822 –

+0

@WallacedeSouza, eso se debe a que usaste PHP 7 en tu ejemplo. No era válido solo en las versiones 5.0 - 5.1.3 – Soaku

1

Respuesta: De php 5.3 y>, la palabra clave es equivalente a varpublic al declarar variables dentro de una clase.

class myClass { 
    var $x; 
} 

es lo mismo que (por php 5.3 y >):

class myClass { 
    public $x; 
} 

Historia: lo que era anteriormente la norma para la declaración de variables en las clases, aunque más tarde se convirtió en depreciado, pero más tarde (PHP 5.3) se convirtió en sin depreciar.

0

Así que, básicamente, es un estilo antiguo y no lo use para la versión más nueva de PHP. Es mejor utilizar la palabra clave pública en su lugar, si no está enamorado de la palabra clave var. Así que en lugar de utilizar

class Test { 
    var $name; 
} 

Uso

class Test { 
    public $name; 
} 
+0

¿por qué dices eso? ¿Hay noticias de que 'var' está en desuso que no he escuchado? los dos deben ser sinónimos – NappingRabbit

1

var se utiliza como un público .si varable se declara como esto en una clase var $ a; si significa que su alcance es público para la clase. en palabras simplea var ~ pública

var $a; 
public 
0

aquí y ahora en 2018 usando var para la declaración de variables es sinónimo de public como en

class Sample{ 
    var $usingVar; 
    public $usingPublic; 

    function ..... 

} 
Cuestiones relacionadas