__autoload()
을 사용할 때 오류가 발생했습니다. 여기 __autoload를 사용할 때 표준 표준 오류가 발생했습니다.
class A
{
public function check($a, $b)
{
$subClass = new B();
return $subClass->check($a);
}
}
class B extends A
{
public function check($a)
{
return $a;
}
}
$a = new A();
$a->check(77, 44);
모든 것이 OK이고; 예상대로 작동합니다.
Strict standards: Declaration of B::check() should be compatible with that of A::check()
재현하려면 :
파일해서, A.php
class A
{
public function check($a, $b)
{
$subClass = new B();
return $subClass->check($a);
}
}
파일 B.php 내가 각 클래스 파일을 생성하고 __autoload()
를 사용할 때, 오류가 :
class B extends A
{
public function check($a)
{
return $a;
}
}
file test.php
function __autoload($className)
{
require_once $className . '.php';
}
$a = new A();
$a->check(77, 44);
그럼 왜 __autoload
을 사용하는 경우에만이 오류가 발생합니까?
이것은'__autoload' 때문에 발생하는 것은 아닙니다. 다른 파일을 단순히'include '하면 같은 문제가 발생합니다. 그러나 그것은 이상합니다. – Boann
좋습니다. 왜이 오류가 나타 났습니까? 클래스 B에서 check() 메소드를 원하는대로 설정할 수 있지만 (클래스 A()는 추상적 메소드가 아니기 때문에), 이유는 무엇입니까? – sergio
2로 정의 된'B :: check()' 'A :: check()'와 같은 argumnets? –