>백엔드 개발 >PHP 튜토리얼 >phpOO 정적 키워드 및 클래스 상수 예제에 대한 자세한 설명

phpOO 정적 키워드 및 클래스 상수 예제에 대한 자세한 설명

伊谢尔伦
伊谢尔伦원래의
2017-06-29 09:18:581097검색

할 일이 없을 때 PHP에서 OO에 대한 정보만 찾아보았더니 액세스 제어 수정자, self, parent, const, static 키워드, arrow operator(책에도 나와있습니다) 라고... 즉 "->"), 범위 파싱 연산자(즉, 이중 콜론 "::")를 사용하는데, 이는 C# 언어의 OO와 같다고 생각하면 쉽습니다. 이해합니다. 하지만 이를 명확히 하기 위해 여전히 살펴보고 싶습니다. PHP의 OO 아이디어는 계속 사용해야 합니다.

-------------------------------------------------- --- ---------------------
정적 클래스 멤버와 메소드를 선언하여 클래스 인스턴스. 정적 멤버 선언은 클래스 개체의 인스턴스를 통해 액세스할 수 없습니다(정적 메서드는 가능함).
정적 선언은 가시성 선언 다음에 와야 합니다. PHP 4와의 호환성을 위해 가시성이 선언되지 않은 경우 멤버 및 메소드는 공개로 선언된 것처럼 처리됩니다.
정적 메서드는 객체가 아닌 인스턴스를 호출할 수 있으므로 의사 변수 $this는 static으로 선언된 메서드에서 사용할 수 없습니다.
실제로 정적 메서드 호출 형식은 컴파일 타임에 결정됩니다. 선언해야 하는 클래스 이름을 사용하는 경우 접근 방식은 전체 식별이며 상속 규칙이 적용되지 않습니다. 이 접근 방식은 선언해야 하는 클래스 이름을 사용할 때 완전히 유효하며 상속 규칙이 없습니다.
self가 선언된 경우 self는 현재 속한 클래스에 의해 해석됩니다. 상속 규칙도 적용되지 않습니다. 정적 속성은 화살표 연산자 ->를 통해 비정적 메서드에서 액세스할 수 없으며, 이는 E_STRICT 수준 경고를 생성합니다.

코드는 다음과 같습니다.

<?php
class Foo
{   public static $my_static=&#39;foo&#39;;
    public function staticValue(){   return self::$my_static;   }
}
class Bar 
extends
 Foo
{   public function fooStatic(){   return parent::$my_static;   }
}
print Foo::$my_static."/n";
$foo = new Foo();
print $foo->staticValue()."/n";
print $foo->my_static."/n";// Undefined "Property" my_static 
// $foo::my_static is not possible
print Bar::$my_static."/n";
$bar = new Bar();
print $bar->fooStatic()."/n";
?>

코드는 다음과 같습니다.

//静态方法实例(Static method example) 
<?php
class Foo
{   public static function aStaticMethod() {    }
}
Foo::aStaticMethod();
?>

각 기본 클래스에 상수를 정의하여 변경되지 않도록 할 수 있습니다. 상수는 $ 기호를 사용하여 선언하거나 사용하지 않는다는 점에서 일반 변수와 다릅니다. 정적 멤버와 마찬가지로 상수 값은 개체 인스턴스를 통해 액세스할 수 없습니다(대신 $object::constant 사용). 상수 값은 변수, 클래스 멤버 또는 수학 표현식이 아닌 상수 expression이어야 합니다. 또는 함수 호출의 결과입니다.

아아아아

위 내용은 phpOO 정적 키워드 및 클래스 상수 예제에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.