这可能是一个非常微不足道的问题,但我无法通过网络搜索引擎或php.net找到答案。如果您没有时间解释,请告诉我我可以阅读的内容。
答案 0 :(得分:359)
用于在PHP4中声明类成员变量,不再需要它。它将在PHP5中运行,但会在PHP 5.0.4.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() {
}
}
答案 1 :(得分:75)
var
关键字用于declare variables in a class in PHP 4:
class Foo {
var $bar;
}
使用PHP 5引入property and method visibility(public
,protected
和private
),因此不推荐使用var
。
答案 2 :(得分:23)
我引用http://www.php.net/manual/en/language.oop5.visibility.php
注意:出于兼容性原因,仍然支持使用var关键字声明变量的PHP 4方法(作为public关键字的同义词)。在5.1.3之前的PHP 5中,其用法将生成E_STRICT警告。
答案 3 :(得分:3)
答案:在 php 5.3和>
中,var
关键字在类中声明变量时等效于public
class myClass {
var $x;
}
与( php 5.3和>
)相同:
class myClass {
public $x;
}
历史记录:以前是在类中声明变量的规范,虽然后来变得折旧,但后来(PHP 5.3)变得不折旧。
答案 4 :(得分:2)
在PHP7.3中仍能正常工作...
https://www.php.net/manual/en/language.oop5.visibility.php
如果使用var声明,则该属性将定义为public。
答案 5 :(得分:1)
所以基本上它是一种旧样式,不要用于较新版本的PHP。最好使用Public关键字;如果你不喜欢var关键字。所以不要使用
class Test {
var $name;
}
使用
class Test {
public $name;
}
答案 6 :(得分:0)
此处和现在 [ClassInitialize]
public static void ReportClassSetup(TestContext context)
{
BaseAdapter.ConnectionString = ConfigurationManager.ConnectionStrings["PremierConfig"].ConnectionString;
IServiceContext serviceContext = new ServiceContextTest();
var backgroundQueueService = new Camp.Core.Queue.DedicatedThreadTaskQueueService("PremierWebQueueService");
backgroundQueueService.Start();
var internalLoggerBackgroundService = new InternalLoggerBackgroundService()
{
QueueService = backgroundQueueService
};
_service = new InternalService(new DummyAuthorizationManager(), null, null)
{
ServiceContext = serviceContext,
InternalLoggerBackgroundService = internalLoggerBackgroundService
};
}
[TestInitialize]
public void ReportTestSetup()
{
}
[TestMethod]
public void GetUserActivityReport1()
{
Assert.IsNotNull(_service.GetUserActivityReport(1));
}
使用2018
进行变量声明与var
同义,如
public
答案 7 :(得分:-1)
var像public一样使用。如果在类中声明了varable var $ a; 如果意味着它的范围是公开的。 简单来说就是var~public
var $a;
public