PHPキーワード 'var'は何をしますか?


427

これはおそらく非常に些細な質問ですが、Web検索エンジンでもphp.netでも答えを見つけることができませんでした。説明する時間がない場合は、これについて私が読むことができる場所に案内してください。

  1. PHPで「var」キーワードは何を意味しますか?
  2. PHP4とPHP5の間に違いはありますか?

4
2009年7月30日にこの質問をしたとき、これはまだphp.net/manual/en/language.oop5.visibility.phpで公開されていなかったと思いますか?:「注:変数を宣言するPHP 4のメソッドvarキーワードは互換性の理由から引き続きサポートされています(publicキーワードの同義語として)。5.1.3より前のPHP 5では、その使用によりE_STRICT警告が生成されました。あるいは、それを見つけられなかったのかもしれません。しかし、答えはphp.netで明確に述べられています。
Jaime Montoya

PHPがここ数年でどのような旅をしたかを見ると、本当に驚くべきことです。
Mehrdad Shokri

回答:


384

PHP4でクラスメンバー変数を宣言するためのもので、もう必要ありません。PHP5では機能しE_STRICTますが、廃止予定の時点で、PHPのバージョン5.0.0からバージョン5.1.2までの警告が表示されます。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() {
    }
}

10
「注:var互換性の理由から、キーワードで変数を宣言するPHP 4の方法は(publicキーワードの同義語として)サポートされています。5.1.3より前のPHP 5では、その使用によりE_STRICT警告が生成されました。」 php.net/manual/en/language.oop5.visibility.php編集:私はそれが別の回答ですでに引用さているのを見ました。しかし、それに応じて編集する必要があります。
Sk8erPeter 2013年

これは、メンバー変数に対してキーワードを使用する必要あることを意味しpublicます。本当?簡単に言え$x;ませんか?
limeandcoconut 2015

1
PHPの非推奨バージョンでの作業について心配していないので、public / privateをそのまま使用し、varを完全に無視することをお勧めしますか?
NoodleOfDeath

1
2019現在:php-fig.org/psr/psr-12/#43-properties-and-constantsvar使用してはならず、すべてのプロパティで可視性を宣言する必要があります。
Charles Wood

79

このvarキーワードは、PHP 4のクラスで変数宣言するために使用されます

class Foo {
    var $bar;
}

PHP 5では、プロパティとメソッドの可視性publicprotectedおよびprivate)が導入されたためvar、非推奨になりました。


17
PHP 5.3ではvar非推奨です:)
Ionuț G. Stan

8
非推奨の場合、現在5.3でのベストプラクティスは何ですか?使用するかしないか?こんな風に使えますprivate var $foo = 'bar';か?
トム・オージェ

1
なぜそれが非推奨になったのか知っていますか?
Simon East、

19
これは5.1.3で非推奨になりました -与えられた唯一の理由は「互換性の理由のため」です。私は、ベストプラクティスは、あなたが確かに行わないPHP 4と互換性がある必要がある場合にのみ、それを使用することだと思うprivate varよう実際に素早く物事を破るだろうこと、 - varのためだけの同義語であるpublicPHPでの5
cincodenada

2
varpublic静的メンバーまたは定数の宣言には使用できないため、は真の同義語ではありません。
Colin O'Dell 2016年

27

私はhttp://www.php.net/manual/en/language.oop5.visibility.phpから引用します

注:varキーワードで変数を宣言するPHP 4の方法は、互換性の理由から(publicキーワードの同義語として)サポートされています。5.1.3より前のPHP 5では、その使用はE_STRICT警告を生成しました。


私はテストをしました。E_STRICTが返されません!sandbox.onlinephpfunctions.com/code/...
ウォレスMaxters

1
@WallacedeSouza、これは、例でPHP 7を使用したためです。バージョン
5.0〜5.1.3で

8

:回答から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私が聞いたことがない非推奨のニュースはありますか?2つは同義である必要があります
NappingRabbit

PHPマニュアルから:「varキーワードを使用して変数を宣言するPHP 4の方法は、互換性の理由から(publicキーワードの同義語として)サポートされています。」php.net/manual/en/language.oop5.visibility.php
マーク


1

varはpublicのように使用されます。varableがクラスvar $ aでこのように宣言されている場合。ifは、そのスコープがクラスに対してパブリックであることを意味します。シンプリカの言葉でvar〜public

var $a;
public

0

変数宣言に2018使用さvarれているここと現在はpublic

class Sample{
    var $usingVar;
    public $usingPublic;

    function .....

}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.