2
두 클래스 인 isbn10과 isbn13을 구현했습니다.부모 클래스에서 올바른 서브 클래스를 인스턴스화하십시오.
$isbn_code = new isbn('978-3-16-148410-0');
내가 함께 같은 것을 할 수 알고 : 나는 ISBN 클래스 생성자에 주어진 파라미터에 따라, 인스턴스화 때 유형 ISBN10 또는 ISBN13의 객체를 얻을 수 있도록 클래스 ISBN을 만들고 싶습니다 정적 방법 :
class isbn {
public static function new($isbn) {
if (preg_match('/' . isbn13::isbn_regex . '/', $isbn)) {
return new isbn13($isbn);
} else if (preg_match('/' . isbn10::isbn_regex . '/', $isbn)) {
return new isbn10($isbn);
} else {
throw new Exception("Invalid ISBN code", 1);
}
}
}
$isbn_code = isbn::new('978-3-16-148410-0');
그러나 IT는 ISBN 클래스를 인스턴스화하고 자동으로 ISBN13 객체를 취득 (또는 ISBN10) 할 수 있을까요?
감사합니다. 나는 할 수없는 느낌이 들었습니다. 단일 isbn 클래스를 구현하는 것이 최선의 해결책이라고 생각합니다. – moray