PHP关键字'var'有什么作用?

时间:2009-07-30 11:52:03

标签: php keyword

这可能是一个非常微不足道的问题,但我无法通过网络搜索引擎或php.net找到答案。如果您没有时间解释,请告诉我我可以阅读的内容。

  1. 'var'关键字在PHP中意味着什么?
  2. PHP4和PHP5之间有什么区别吗?

8 个答案:

答案 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 visibilitypublicprotectedprivate),因此不推荐使用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