这可能是一个很小的问题,但我既没有通过网络搜索引擎,也没有在php.net上找到答案。如果你没时间解释的话,请告诉我到哪里可以读到。
"var"关键字在PHP中的含义是什么?
php4和php5有什么区别吗?
我猜当你在2009年7月30日问这个问题时,这个问题还没有在php.net/manual/en/language.oop5.visibility.php上发布?注意:由于兼容性的原因(作为公共关键字的同义词),仍然支持用var关键字声明变量的php 4方法。在5.1.3之前的php 5中,它的使用会生成一个e_严格警告。但答案在php.net上有明确说明。
它用于在php4中声明类成员变量,不再需要。它将在php5中工作,但会在php中从版本5.0.0到版本5.1.2发出E_STRICT警告,直到它被弃用为止。自php 5.3以来,var一直没有被弃用,是"public"的同义词。
示例用法:
class foo {
var $x = 'y'; // or you can use public like...
public $x = 'y'; //this is also a class member variables.
function bar() {
}
}
"注意:由于兼容性原因(作为public关键字的同义词),仍然支持用var关键字声明变量的php 4方法。"在5.1.3之前的php 5中,它的使用将生成一个E_STRICT警告。"php.net/manual/en/language.oop5.visibility.php edit:我刚刚看到它已经在另一个答案中被引用了。但是你应该相应地编辑你的。
这意味着有必要对成员变量使用public关键字with。是真的吗?难道人们不能简单地把$x;放进去吗?
那么,是否建议只使用public/private并完全忽略var,因为我们不担心使用不推荐使用的PHP版本?
var关键字用于在php 4中的类中声明变量:
class Foo {
var $bar;
}
使用php 5属性和方法可见性(public,引入protected和private,因此不推荐使用var。
在php 5.3中,var被取消了使用:)
如果不推荐使用,那么5.3中的最佳实践是什么——使用还是不使用?你能像private var $foo = 'bar';那样使用它吗?
有人知道为什么要取消推荐吗?
它在5.1.3中没有预先说明-给出的唯一原因是"出于兼容性原因"。我认为最佳实践是仅在需要与PHP4兼容时才使用它。当然,不要执行private var,因为var只是php 5中public的同义词。
var不是public的真正同义词,因为它不能用于声明静态成员或常量。
我引用自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.
我做了测试。没有返回E_Strict!sandbox.onlinephpfunctions.com/code/…
@Wallacedeouza,这是因为您在示例中使用了php 7。它仅在版本5.0-5.1.3中无效
答:在php 5.3和>中,当在类内声明变量时,var关键字等同于public。
class myClass {
var $x;
}
与(php 5.3和>相同):
class myClass {
public $x;
}
历史:它以前是在类中声明变量的标准,虽然后来被折旧了,但后来(php 5.3)它变成了未折旧的。
所以基本上,它是一种旧样式,不要将其用于较新版本的PHP。最好使用公共关键字;如果你不喜欢var关键字。所以不用
class Test {
var $name;
}
使用
class Test {
public $name;
}
你为什么这么说?有没有消息说我还没听说过江户十一〔0〕被否决?这两者应该是同义的
现在在2018中,使用var作为变量声明与public同义,如
class Sample{
var $usingVar;
public $usingPublic;
function .....
}
var像public一样使用。如果在类中像这样声明varableVAR $ A;if表示它的作用域对于类是公共的。简单来说,var ~ public
var $a;
public