는 데이터베이스 데이터베이스 상호 작용이 클래스의 아이 위해 만들어 추상 클래스 (사용자 데이터베이스는 ActionDatabase, EventDatabase는) 정적로 정의의 데이터베이스 연결을 상속 내 . 상속 데이터베이스 연결
abstract class Database { public static $connection; public function __construct() { ... $this->connection = mysql_connect($host, $username, $password); } } class UserDatabase extends Database { public function verify() { if ($this->connection == parent::$connection) { print "true"; } else { print "false"; print "this:" . $this->connection . " parent:" . parent::$connection; } } } $instance = new UserDatabase(); $instance->verify(); // this prints false, as parent::$connection is empty
내 데이터베이스 연결 만 설정하고 일단 메모리 에 저장하고 각 인스턴스에 대해 복제하지 않고 참고로 서브 클래스에 전달되어, 그 의미합니까? OOP 올바른 데이터베이스 인터페이스를 구현하는 방법은 무엇입니까?
, 나는 가능한 한 짧게 클래스의 목적을 설명하기 위해 노력했다,하지만 난 내 PHP-문법이 나를 실패 같아요. 내 ** 사용자 ** 인스턴스는 ** UserDatabase **가 반환하는 항목입니다. 사용자 클래스는 스크립트를 처리하는 동안 시스템에서 필요할 수있는 값에 대한 setter/getter 클래스입니다. 스크립트가 완료되면 사용자 개체를 현재 UserDatabase로 전달하므로 사용자를 값으로 줄인 다음 데이터베이스 쿼리에 업데이트 쿼리를 보낼 수 있습니다. 그래서 클래스 데이터베이스 상속 체인은 반환하는 유형과 구분됩니다. ActionDatabase는 Action의 인스턴스를 반환하고 받아들입니다. – sdkfasldf