This is probably a very trivial question, but I haven't been able to find the answer neither through web search engines, nor on php.net. Please just direct me to where I can read about this, if you haven't got time to explain.
What does the 'var' keyword mean in PHP? Are there any differences between PHP4 and PHP5?
It's for declaring class member variables in PHP4, and is no longer needed. It will work in PHP5, but will raise an E_STRICT
warning in PHP from version 5.0.0 up to version 5.1.2, as of when it was deprecated. Since PHP 5.3, var has been un-deprecated and is a synonym for 'public'.
Example usage:
class foo {
var $x = 'y'; // or you can use public like...
public $x = 'y'; //this is also a class member variables.
function bar() {
}
}
The var
keyword is used to declare variables in a class in PHP 4:
class Foo {
var $bar;
}
With PHP 5 property and method visibility (public
, protected
and private
) was introduced and thus var
is deprecated.
var
is de-deprecated :)
private var $foo = 'bar';
?
private var
- that will break things real quick, as var
is just a synonym for public
in PHP 5.
var
is not a true synonym for public
as it cannot be used for declaring static members or constants.
I quote from http://www.php.net/manual/en/language.oop5.visibility.php
Note: The PHP 4 method of declaring a variable with the var keyword is still supported for compatibility reasons (as a synonym for the public keyword). In PHP 5 before 5.1.3, its usage would generate an E_STRICT warning.
Answer: From php 5.3 and >
, the var
keyword is equivalent to public
when declaring variables inside a class.
class myClass {
var $x;
}
is the same as (for php 5.3 and >
):
class myClass {
public $x;
}
History: It was previously the norm for declaring variables in classes, though later became depreciated, but later (PHP 5.3) it became un-depreciated.
So basically it is an old style and do not use it for newer version of PHP. Better to use Public keyword instead;if you are not in love with var keyword. So instead of using
class Test {
var $name;
}
Use
class Test {
public $name;
}
var
being deprecated that I havent heard? the two should be synonymous
var is used like public .if a varable is declared like this in a class var $a; if means its scope is public for the class. in simplea words var ~public
var $a;
public
In PHP7.3 still working...
https://www.php.net/manual/en/language.oop5.visibility.php
If declared using var, the property will be defined as public.
here and now in 2018
using var
for variable declaration is synonymous with public
as in
class Sample{
var $usingVar;
public $usingPublic;
function .....
}
Success story sharing
var
keyword is still supported for compatibility reasons (as a synonym for thepublic
keyword). In PHP 5 before 5.1.3, its usage would generate anE_STRICT
warning." php.net/manual/en/language.oop5.visibility.php EDIT: I just saw that is has already been quoted in another answer. But you should edit yours accordingly.public
keyword with for a member variable. Is that true? Can't one simply put$x;
?var
must not be used, and visibility must be declared on all properties.