>  기사  >  백엔드 개발  >  PHP 객체 지향 노트 - 123 정적 속성 및 정적 메서드 그림

PHP 객체 지향 노트 - 123 정적 속성 및 정적 메서드 그림

不言
不言원래의
2018-04-08 15:47:081765검색

이 글에 소개된 내용은 PHP 객체지향의 정적 속성과 정적 메서드의 123개 다이어그램으로, 이제 모든 사람과 공유되며, 도움이 필요한 친구들이 참고할 수 있습니다

/*
속성 및 메서드 앞에 정적 수정 추가
, 이를 정적 속성/정적 메서드라고 합니다.

정적 속성

정적 속성은 클래스 공간
1에 저장됩니다. 해당 속성은 이미 존재하므로 액세스하기 위해 개체에 의존할 필요가 없습니다. 2. 클래스는 메모리에 하나만 있으므로 정적 속성은 하나만 있습니다.
*/

class Human {
    static public $head = 1;    public function changeHead() {
        Human::$head = 9;
    }    public function getHead() {
        return Human::$head;
    }
}echo Human::$head; //1// 静态属性的访问方法echo &#39;<br >&#39;;// 静态属性只有一个,为所有的对象的共享.$m1 = new Human();$m1->changeHead();$m2 = new Human();$m3 = new Human();echo $m2->getHead(),&#39;<br >&#39;; //9echo $m3->getHead(),&#39;<br >&#39;; //9

PHP 객체 지향 노트 - 123 정적 속성 및 정적 메서드 그림

/*

Static 메소드

일반 메소드, 클래스에 저장됨, 1개만 복사됨

클래스에도 저장된 정적 메서드는 1개만 저장됩니다

차이점은 다음과 같습니다.

일반 메서드는 개체를 동원해야 하고 $this를 바인딩해야 합니다.
즉, 일반 메서드는 개체가 있어야 하며 개체와 함께 동원되어야 합니다

그리고 정적 메서드 어떤 객체에도 속하지 않고 클래스에 속하므로 $this를 바인딩할 필요가 없습니다.

즉, 클래스 이름을 통해 정적 메서드를 동원할 수 있습니다. *
요약:
위에서 분석했듯이 실제로 비정적 메서드는 클래스 이름으로 정적으로 호출할 수 없습니다.

*/

class Human2 {
    public $name = &#39;张三&#39;;    static public function cry() {
        echo &#39;5555&#39;;
    }    public function eat() {
        echo &#39;吃饭&#39;;
    }    public function intro() {
        echo $this->name;
    }
}// 此时一个对象都没有Human2::cry();// 下面这个eat是非静态方法,应由对象来调用Human2::eat();/*
报错提示:
Strict standards: Non-static method Human2::eat() should not be called statically
*/echo &#39;<br >&#39;;//Human2::intro();/*
直接报错:
Fatal error: Using $this when not in object context
*/
PHP 객체 지향 노트 - 123 정적 속성 및 정적 메서드 그림/*

Class->Access->Static Method Can

Class- >동적 메소드 메소드에 이것이 없으면 심각하게 지원되지 않습니다. 논리적으로 설명하면 안됩니다.PHP 객체 지향 노트 - 123 정적 속성 및 정적 메서드 그림

객체->동적 메소드 액세스 가능

객체->정적 메소드 가능
*/

관련 권장 사항:


객체 지향 PHP의 상속, 다형성 및 캡슐화 소개


php 객체 지향 설계 원리 개요

위 내용은 PHP 객체 지향 노트 - 123 정적 속성 및 정적 메서드 그림의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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