2013-05-11 3 views
1

올바른 용어는 $instance_variable$class_variable이 아니고 $method_variable이 아닙니다.클래스 및 인스턴스 변수를 모두 지칭하며 메서드에 정의 된 변수를 참조하는 용어가 있습니까?

class { 
    public $instance_variable; 
    static $class_variable; 
    function do_something() { 
     $method_variable; 
    } 
} 

class scope variables은 의미가 있습니까?

+0

내가 알고있는 용어는 둘 다 의미하지는 않습니다. "클래스 범위"는 나에게 의미가 없지만 클래스의 범위가 전체 프로그램이므로 클래스 인스턴스 변수를 제외합니다. – greedybuddha

+1

아마도 "속성"만으로 충분할 수 있습니다. 이는 메소드 로컬 변수를 제외하지만 인스턴스와 정적을 모두 포함합니다. 정적 변수와 인스턴스 변수의 의미상의 차이가 크기 때문에 한 번은 대다수를 참조하지 않는다고 생각합니다. – Dan

+0

@Bracketworks, 맞아. 이것을 대답으로 써야합니다. –

답변

2

PHP는 다른 곳에서 정의 된대로 (C#) 정의 된 개념이 없으므로이 두 가지를 "속성"이라고 부릅니다.

속성

클래스 멤버 변수는 "속성"이라고합니다 :

편집는, 또한, 속성은 PHP 매뉴얼에 정의 된 매우 용어입니다. "속성"또는 "필드"와 같은 다른 용어를 사용하여 참조 된 것을 볼 수도 있지만이 참조를 위해 "속성"을 사용합니다. 이들은 public, protected 또는 private 키워드 중 하나를 사용하여 정의되고 일반 변수 선언이 뒤 따른다. 이 선언에는 초기화가 포함될 수 있지만이 초기화는 상수 값이어야합니다. 즉, 컴파일시 평가가 가능해야하며 평가를 위해 런타임 정보에 의존해서는 안됩니다.

설명서에는이 정의에 static 선언이 포함됩니다.

또한, "필드"또는 더 일반적으로 "회원"회원들이 자주 저장을 위해 독점적으로 방법 정의와 다른 구조를 포함하지만, 충분 수 있습니다. C에 # MSDN에서

클래스와 구조체는 데이터와 동작을 대표하는 회원이 (나는이 PHP하지만 ... 태그 된 알). 그 구성원은 다음을 포함합니다.

Fields (C# Programming Guide) 필드는 클래스의 일부로 간주되며 일반적으로 클래스 데이터를 보유하는 개체의 인스턴스입니다. 예를 들어, 캘린더 클래스에는 현재 날짜를 포함하는 필드가있을 수 있습니다.

Properties (C# Programming Guide) 속성은 해당 클래스의 필드 인 것처럼 액세스되는 클래스의 메서드입니다. 속성은 클래스 필드가 객체의 지식없이 변경되지 않도록 클래스 필드를 보호합니다.