다음과 같은 문제가 있습니다. 내 응용 프로그램에는 두 가지 모델이 있지만 데이터베이스의 동일한 테이블에 저장됩니다. 그들은 type
열로 구분할 수 있습니다. 첫 번째 열은 0이고 두 번째 열은 1입니다.정적 메서드 상속
내 응용 프로그램에서는 각 유형별로 2 개의 클래스를 만들었습니다. 그러나 나는 한 번만 쿼리를 만들고 정적 멤버를 사용하여 유형을 파악하려고합니다. Basicly 내가 같을 것이다 달성하고 싶은 :
class A
{
public $Description; //From the database
public static function GetAll()
{
$query = "SELECT * FROM letters WHERE type = " . self::getType();
echo $query;
}
private static function getType()
{
return 0;
}
}
class B
extends A
{
public $SomeOtherProperty; //B also has another property, which A doesnt have. Its stored an another table.
private static function getType()
{
return 1;
}
}
A::GetAll(10);
B::GetAll(10);
을하지만, PHP는이 출력 결과 정적 memberwriting 지원 나던 :
SELECT *을 편지에서 어디 유형 = 0
SELECT * FROM 문자 유형 = 0
하위 클래스가 자체 유형을 지정할 수있는 이러한 결과를 얻는 가장 좋은 방법은 무엇입니까?
실제 답변이 아니지만 이와 같은 정적 클래스는 사용하지 않는 것이 좋습니다. PHP의 정적 호출은 기본적으로 상속 기능 및 기타 관련 기술을 사용하지 않고 관련 함수를 그룹화하는 방법입니다. – Quamis
클래스 자체에는 정적 클래스가 없습니다. A는 모델의 모든 속성을가집니다. 그러나 데이터베이스에서 모든 A를 가져 오는 방법은 정적입니다. – TJHeuvel