【问题标题】:What does PHP keyword 'var' do?PHP 关键字 'var' 有什么作用?
【发布时间】:2010-11-15 10:05:43
【问题描述】:

这可能是一个非常琐碎的问题,但我无法通过网络搜索引擎或 php.net 找到答案。如果您没有时间解释,请直接引导我到我可以阅读此内容的地方。

  1. PHP 中的 'var' 关键字是什么意思?
  2. PHP4和PHP5有什么区别吗?

【问题讨论】:

  • 我猜当你在 2009 年 7 月 30 日问这个问题时,这个问题还没有在php.net/manual/en/language.oop5.visibility.php 发布?:“注意:PHP 4 用 var 关键字声明变量的方法仍然是出于兼容性原因而支持(作为 public 关键字的同义词)。在 5.1.3 之前的 PHP 5 中,使用它会产生 E_STRICT 警告。或者也许你没有找到它。但答案在 php.net 上已明确说明。
  • 看看 PHP 这些年走过的路真是太棒了!

标签: php keyword


【解决方案1】:

它用于在 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() {
    }
}

【讨论】:

  • "注意:出于兼容性原因,仍然支持使用 var 关键字声明变量的 PHP 4 方法(作为 public 关键字的同义词)。在 PHP 5 之前5.1.3,它的使用会产生一个E_STRICT 警告。” php.net/manual/en/language.oop5.visibility.php 编辑:我刚刚看到它已经被引用了in another answer。但你应该相应地编辑你的。
  • 这意味着必须对成员变量使用public 关键字。真的吗?不能简单地说$x;吗?
  • 所以建议坚持使用 public/private 并完全忽略 var,因为我们不担心使用已弃用的 PHP 版本吗?
  • 截至 2019 年:php-fig.org/psr/psr-12/#43-properties-and-constants 声明不得使用 var,并且必须在所有属性上声明可见性。
【解决方案2】:

var关键字用于declare variables in a class in PHP 4

class Foo {
    var $bar;
}

在 PHP 5 中引入了 property and method visibilitypublicprotectedprivate),因此不推荐使用 var

【讨论】:

  • 在 PHP 5.3 中 var 已弃用 :)
  • 如果它已被弃用,那么现在 5.3 中的最佳做法是什么 - 使用它还是不使用它?可以像private var $foo = 'bar';一样使用吗?
  • 有人知道为什么它被弃用了吗?
  • 它未被弃用 in 5.1.3 - 给出的唯一原因是 "for compatibility reasons"。我认为最好的做法是仅在需要与 PHP 4 兼容时才使用它。当然不要这样做 private var - 这会很快破坏事情,因为 var 只是 PHP 5 中 public 的同义词.
  • var 不是 public 的真正同义词,因为它不能用于声明静态成员或常量。
【解决方案3】:

我引用http://www.php.net/manual/en/language.oop5.visibility.php

注意:出于兼容性原因,仍然支持使用 var 关键字声明变量的 PHP 4 方法(作为 public 关键字的同义词)。在 5.1.3 之前的 PHP 5 中,使用它会产生一个E_STRICT 警告。

【讨论】:

【解决方案4】:

答案:php 5.3 和 > 开始,在类中声明变量时,var 关键字等同于 public

class myClass {
  var $x;
}

与(对于php 5.3 和>)相同:

class myClass {
  public $x;
}

历史:以前是在类中声明变量的规范,虽然后来被贬值了,但后来(PHP 5.3)它变得不贬值了。

【讨论】:

    【解决方案5】:

    所以基本上它是一种旧样式,不要将它用于较新版本的 PHP。最好使用 Public 关键字;如果您不喜欢 var 关键字。所以不要使用

    class Test {
        var $name;
    }
    

    使用

    class Test {
       public $name;
    }
    

    【讨论】:

    • 你为什么这么说?有没有我没有听说过var 被弃用的消息?两者应该是同义词
    • 来自 PHP 手册:“出于兼容性原因,仍然支持使用 var 关键字声明变量的 PHP 4 方法(作为 public 关键字的同义词)。” php.net/manual/en/language.oop5.visibility.php
    【解决方案6】:

    var 像 public 一样使用。如果在类中这样声明一个变量 变量$a; if 表示它的范围对于该类是公共的。 简单来说就是 var ~public

    var $a;
    public
    

    【讨论】:

      【解决方案7】:

      在 PHP7.3 中仍然可以工作...

      https://www.php.net/manual/en/language.oop5.visibility.php

      如果使用 var 声明,该属性将被定义为 public。

      【讨论】:

        【解决方案8】:

        此时此刻在2018 中使用var 进行变量声明与public 同义

        class Sample{
            var $usingVar;
            public $usingPublic;
        
            function .....
        
        }
        

        【讨论】:

          猜你喜欢
          • 2017-11-21
          • 2019-06-07
          • 2019-09-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-07-19
          • 2019-10-19
          相关资源
          最近更新 更多