ChatGPT解决这个技术问题 Extra ChatGPT

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

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

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

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

A
Abraham Philip

它用于在 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 关键字的同义词)。在 5.1.3 之前的 PHP 5 中,它的使用会产生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,并且必须在所有属性上声明可见性。
G
Gumbo

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 的真正同义词,因为它不能用于声明静态成员或常量。
2
2 revs, 2 users 80%

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

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


我做了测试。没有返回 E_STRICT ! sandbox.onlinephpfunctions.com/code/…
@WallacedeSouza,那是因为您在示例中使用了 PHP 7。仅在 5.0 - 5.1.3 版本中无效
W
Webeng

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

class myClass {
  var $x;
}

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

class myClass {
  public $x;
}

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


k
kta

所以基本上它是一种旧样式,不要将它用于较新版本的 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
k
kumar

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

var $a;
public

x
xayer

在 PHP7.3 中仍然有效...

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

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


N
NappingRabbit

这里和现在在 2018 中使用 var 进行变量声明与 public 同义,如

class Sample{
    var $usingVar;
    public $usingPublic;

    function .....

}