PHP 키워드 'var'의 기능은 무엇입니까?


427

이것은 아마도 사소한 질문 일지 모르지만 웹 검색 엔진이나 php.net을 통해 답을 찾을 수 없었습니다. 설명 할 시간이 없다면 이것에 대해 읽을 수있는 곳으로 안내해주십시오.

  1. PHP에서 'var'키워드는 무엇을 의미합니까?
  2. PHP4와 PHP5 사이에 차이점이 있습니까?

4
2009 년 7 월 30 일에이 질문을했을 때 php.net/manual/en/language.oop5.visibility.php에 아직 게시되지 않았다고 생각합니다 : "참고 : var 키워드는 호환성 이유로 공개 키워드와 동의어로 지원됩니다. 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

것을 의미 필요한 용도에 public멤버 변수로 키워드를. 그게 사실입니까? 간단히 넣을 수 $x;없습니까?
limeandcoconut

1
더 이상 사용되지 않는 PHP 버전으로 작업하는 것에 대해 걱정할 필요가 없으므로 공개 / 개인 및 var를 무시하는 것이 좋습니다.
NoodleOfDeath

1
2019 년 기준 : php-fig.org/psr/psr-12/#43-properties-and-constants 상태는 사용 var해서는 안되며 가시성은 모든 속성에 선언되어야합니다.
찰스 우드

79

var키워드에 사용되는 PHP 4에서 클래스에 선언 변수 :

class Foo {
    var $bar;
}

PHP 5에서는 속성 및 메소드 가시성 ( public, protectedprivate)이 도입되었으므로 var더 이상 사용되지 않습니다.


17
PHP 5.3 var에서 더 이상 사용되지 않습니다 :)
Ionuț G. Stan

8
더 이상 사용되지 않는 경우 5.3에서 사용하는 것이 가장 좋은 방법은 무엇입니까? 당신은 그것을처럼 사용할 수 있습니까 private var $foo = 'bar';?
Tom Auger

1
더 이상 사용되지 않는 이유를 아는 사람이 있습니까?
Simon East

19
5.1.3 에서는 더 이상 사용되지 않았 으며 제공된 유일한 이유는 "호환성 문제" 입니다. PHP 4와 호환 될 필요가있을 때만 사용하는 것이 최선의 방법이라고 생각합니다. 확실히하지 마십시오 . PHP 5 와 동의어 private var인 것처럼 빠르게 작동하지 않을 것입니다 .varpublic
cincodenada

2
varpublic정적 멤버 또는 상수를 선언하는 데 사용할 수 없으므로 진정한 동의어가 아닙니다 .
콜린 오델

27

http://www.php.net/manual/en/language.oop5.visibility.php 에서 인용합니다 .

참고 : var 키워드로 변수를 선언하는 PHP 4 방법은 호환성 이유로 (공용 키워드의 동의어) 여전히 지원됩니다. 5.1.3 이전의 PHP 5에서는 사용법이 E_STRICT경고를 생성합니다 .


나는 시험을했다. E_STRICT가 반환되지 않았습니다! sandbox.onlinephpfunctions.com/code/…
Wallace Maxters

1
@WallacedeSouza, 예에서 PHP 7을 사용했기 때문입니다. 버전
5.0-5.1.3

8

: 답변 에서 PHP 5.3 및 >1, var키워드에 해당 public클래스 내에 변수를 선언 할 때.

class myClass {
  var $x;
}

( php 5.3 및 >) 와 동일합니다 .

class myClass {
  public $x;
}

역사 : 이전에는 클래스에서 변수를 선언하는 것이 표준 이었지만 나중에 감가 상각되었지만 나중에는 (PHP 5.3) 감가 상각되지 않았습니다.


5

따라서 기본적으로 이전 스타일이며 최신 버전의 PHP에는 사용하지 마십시오. var 키워드를 좋아하지 않으면 공개 키워드를 대신 사용하는 것이 좋습니다. 그래서 대신에

class Test {
    var $name;
}

사용하다

class Test {
   public $name;
}

왜 그렇게 말합니까? 의이 소식 var들었 havent 한 것을 사용되지는? 둘은 동의어 여야합니다
NappingRabbit

PHP 매뉴얼에서 : "var 키워드로 변수를 선언하는 PHP 4 방법은 호환성 이유로 (공용 키워드와 동의어로서) 여전히 지원됩니다." php.net/manual/en/language.oop5.visibility.php
Tomark


1

var는 public처럼 사용됩니다. var $ a 클래스에서 varable이 이와 같이 선언되면; 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.