>백엔드 개발 >PHP 튜토리얼 >PHP 정적 클래스 및 비정적 클래스

PHP 정적 클래스 및 비정적 클래스

WBOY
WBOY원래의
2016-07-29 09:13:23821검색

정적 클래스: 정적으로 정의된 정적 속성 또는 메서드를 포함하는 클래스

정적 클래스 액세스 방법:

1., 정적 메서드 객체를 인스턴스화할 필요가 없으며 클래스 이름을 통해 직접 호출할 수 있으며 연산자는 이중 콜론::
Car::getName()
2. 공개 속성 또는 메소드에 대한 외부 액세스:
$car- >speed;$car->speedUp();
3. 공개 속성 및 메소드에 대한 내부 액세스:
$this->speed;$this->speedUp();
if(empty ($articleclass_id)) $this->showapp(array('msg'=>'잘못된 작업'));
4. 외부 액세스정적 속성또는 메서드 :
자동차 ::getName();자동차::$price;
$articleclass_id = SUtil::getStr($_GET['id'], 'int');

5. 내부 접근정적 속성 :

self::$price;

6. 클래스를 상속할 때 하위 클래스는 내부적으로 상위 클래스 정적 속성을 호출합니다. :

parent::$price;

class Controller_article extends Controller_basepage {
    function __construct() {
        parent::__construct();
    }
}

7. 정적 메서드인 경우 , $this를 사용하지 않고 메서드를 변경해야 합니다. 즉, 비정적 변수/메서드가 호출되지 않습니다. 물론 정적 변수/메서드를 호출하는 데에는 문제가 없습니다.

8. $object->...를 사용하는 것과 class::...를 사용하는 것의 차이점은 무엇입니까:
1 . $object- >…을 사용하여 객체를 생성하려면 생성자를 실행해야 합니다.
2. 정적 메서드/변수를 호출하려면 class::…을 사용하세요. 객체를 생성하기 위해 생성자를 실행할 필요가 없습니다.
3. 비정적 메서드/변수를 호출하려면 class::...를 사용하세요. 객체를 생성하려면 생성자를 실행해야 합니다.

왜 정적 클래스가 있나요? ? ? ? ? ? ? ?

--------정적 변수나 함수는 정적 메모리에 저장되며 프로그램이 종료될 때만 해제됩니다.

동적 클래스는 동적으로 할당되나요? 컴파일하는 동안과 프로그램이 실행되는 동안 할당됩니다.

클래스에서 한 번 호출되면 정적 클래스는 컴파일할 때 더 많은 작업을 수행해야 하고, 동적 클래스는 실행할 때 더 많은 작업을 수행해야 합니다. 그러나 PHP는 동적 언어이므로 이 두 단계는 매번 손실되지 않습니다. 따라서 한 번만 실행되는 수업의 경우 누가 더 빠르고 누가 느린지는 중요하지 않습니다.

그러나 프로그램에서 클래스를 여러 번 호출해야 하는 경우에는 다릅니다. 정적 클래스는 컴파일 중에 값이 할당되며, 동적으로 메모리를 할당하지 않고 프로그램을 실행할 때 직접 호출할 수 있습니다. 시간을 절약하므로 정적 클래스가 동적 클래스보다 빠릅니다(여러 번 호출하는 것을 기억한 경우).

위 내용은 정적 메서드와 정적 속성을 포함하여 PHP 정적 클래스와 비정적 클래스를 소개하고 있어 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

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