내 클래스 이름과 동일한 이름을 내 클래스에 제공하면이 코드가 "AA"로 인쇄되는 이유는 무엇입니까?PHP에서 클래스의 함수 정의와 동일한 이름
class A{
public function a() {
echo 'A';
}
}
$a = new A();
$a->a(); // AA
고마워요!
내 클래스 이름과 동일한 이름을 내 클래스에 제공하면이 코드가 "AA"로 인쇄되는 이유는 무엇입니까?PHP에서 클래스의 함수 정의와 동일한 이름
class A{
public function a() {
echo 'A';
}
}
$a = new A();
$a->a(); // AA
고마워요!
각 라인은 a()
을 호출합니다.이 클래스는 클래스 다음에 A
클래스의 생성자 함수로 사용됩니다.
일반적으로 __construct
함수를 사용하면 생성자로 작동하지만 어떤 함수도 호출되지 않으므로 __construct
이라는 클래스의 함수가 호출됩니다. 그래서 실제로 출력과 같이 보인다 :
$a = new A(); // A
$a->a(); // A
PHP가 주어진 클래스를위한 __construct() 함수를 찾을 수없는 경우, PHP 3, 4 이전 버전과의 호환성을 위해
AA
를 출력으로 축적
하고, 클래스가 부모 클래스에서 하나를 상속받지 못하면 클래스의 이름으로 이전 스타일의 생성자 함수를 검색합니다. 자동으로 즉시 기능을 선언한다로
생성자 호출 A()
StackOverflow에 오신 것을 환영합니다. 시간을내어 질문에 답변 해 주셔서 감사합니다. 일반적으로 질문에 대답 할 때 주어진 방법이 왜 효과가 없는지 설명하고 저자가 올바른 방향으로 나아갈 수있는 대안을 제시하고자합니다. 나는 [좋은 대답을 쓰는 방법] (http://stackoverflow.com/help/how-to-answer)을 읽어 볼 것을 권합니다. – CmdrSharp
http://stackoverflow.com/questions/217618/construct-vs-sameasclassname-for-constructor-in- ph – PeeHaa
http://php.net/manual/en/migration70.deprecated.php – PeeHaa
Tl; 박사님, PHP를 업데이트하고 오류보고 활성화 – PeeHaa