1
다음
가 제공하는 간단한 PHP 코드간단한 수준의 추상화 (이름을 충돌?) 작동하지 않습니다
<?
abstract class A{
abstract public function a($x);
}
class B extends A{
public function a($x)
{
echo $x;
}
}
$q = new B;
$q->a(10);
?>
입니다 : PHP 치명적인 오류 : A()
추상 메소드 A를 :: 호출 할 수 없습니다하지만 함수의 이름을 "a"가 아닌 다른 것으로 변경하면됩니다.
그래서 (10)을 호출하면 실제로 어떤 일이 발생합니까? 여기에 논리가 표시되지 않습니다.
대안이 A''에'__construct'를 추가하는 것입니다. – Artefacto
물론 :) +1 –
@Artefacto는 '엄격한 표준 : 클래스 A에 대해 이미 정의 된 생성자를 다시 정의합니다.'를 트리거합니다. 최소한 함수'a()'를 유지한다면. 이전 버전과의 호환성이 실제로 다른 것보다 버그에 더 가깝습니다. – Gordon