정적 클래스: 정적으로 정의된 정적 속성 또는 메서드를 포함하는 클래스
정적 클래스 액세스 방법:
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 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.