제목에서 알 수 있듯이 PHP가 클래스 이름을 사용하여 정적 메서드를 직접 호출할 때 두 가지 문제가 있습니다.
1 현재 클래스의 생성자가 호출되나요?
2 현재 클래스의 상위 클래스 생성자가 호출되나요?
직접 테스트해 보세요. 브라우저가 최고의 선생님입니다예 1:<?phpclass A{
}A::myFun();?>예 2:<?php클래스 A{
}클래스 B가 A를 확장합니다.{
}B::myFun();?>
1. 아니요 2. 아니요
생성자는 인스턴스화할 때만 호출됩니다. 정적 메서드는 인스턴스를 생성하지 않으며 생성자를 호출하지 않습니다
아니요, 생성자 메서드는 클래스가 인스턴스화될 때만 호출됩니다. 정적 메서드는 정적 코드 영역에 저장되며 클래스가 로드될 때 로드됩니다.
직접 테스트해 보세요. 브라우저가 최고의 선생님입니다
으아악예 1:
<?php
class A{
}
으아악A::myFun();
?>
예 2:
<?php
클래스 A{
}
으아악클래스 B가 A를 확장합니다.{
}
B::myFun();
?>
1. 아니요
2. 아니요
생성자는 인스턴스화할 때만 호출됩니다. 정적 메서드는 인스턴스를 생성하지 않으며 생성자를 호출하지 않습니다
아니요, 생성자 메서드는 클래스가 인스턴스화될 때만 호출됩니다. 정적 메서드는 정적 코드 영역에 저장되며 클래스가 로드될 때 로드됩니다.