저는 뷰어라고 부르는 작은 클래스가 있습니다. 이 클래스는 각 페이지 또는 그와 비슷한 것을보기로되어 있습니다 ...데이터베이스에서 데이터를 가져 오는 중 get-method를 사용합니까?
나는이 메소드의 사용자가 호출 될 때 getFirstPage라는 메소드를 가지고 있는데,이 메소드는 페이지가 현재 첫 페이지. 내가 여기에 몇 가지 코드를 가지고, 나는 그것이 작동 생각하지만 난 정말 내가 올바른 방법으로 할 것을 슈어하지 오전 :
이class Viewer {
private $db;
private $user;
private $firstPage;
function __construct($db, $user) {
$this->db = $db;
if(isset($user)) {
$this->user = $user;
} else {
$this->user = 'default';
}
}
function getFistPage() {
$std = $db->prepare("SELECT firstPage FROM settings WHERE user = ':user'");
$std->execute(array(':user' => $user));
$result = $std->fetch();
$this->firstPage = $result['firstPage'];
return $this->firstPage;
}
}
내 get 메소드는, 데이타베이스에서 설정 가져 오는됩니다 (지금까지 너무 좋은?). 문제는 그 다음이 get 메서드를 사용하여 private 변수 firstPage를 설정해야한다는 것입니다. 이 작업을 수행하는 데 set 메소드가 있어야하는 것 같지만 데이터베이스에서 일부 설정을 가져 오는 set 메소드가 실제로는 없습니다. 이 개체의 사용자는 이미 개체에 정의 된 설정이 있다고 가정 할 수 있어야하므로 ...
어떻게해야합니까?
나는 방법을 쓸 때 공개 키워드를 완전히 잊었다! 첫 번째 시도는 생성자에서 모든 값 (첫 페이지 이상이되어야 함)을 초기화하는 것이었지만 그렇게하지 말아야한다는 내용을 읽었습니다. 한 번에 둘 이상의 매개 변수를 초기화하려면 어떻게해야합니까? 초기화 메소드를 작성할 수 있습니까? – theva
초기화 방법은 좋지 않은 것으로 간주됩니다. 생성자에서 객체 상태를 설정하고 메소드에서 모든 계산을 수행해야합니다. 'getFirstPage' 메서드를 호출하기 전에 왜 firstPage를 초기화하고 싶습니까? –
뷰어로 사용되는 개체는 현재 사용자 설정에 따라 달라 지므로 인스턴스로 설정된 개체는 firstPage를 설정하지 않으면 완료되지 않습니다. – theva