다음의 간단한 클래스 생성자를 고려하십시오. (I 분명히 참조하는 모든 방법을 포함하고 있지 않다 있습니다생성자에서 값을 반환하는 것이 좋지 않습니까?
// Initialize User class.
public function __construct($user_id = NULL)
{
// If user is loaded (and a user ID is provided)
if ($user_id)
{
// If user is authorized.
if ($this->authorized($user_id))
{
// Load user information.
$this->info = $this->load($user_id);
}
else
{
// Return an empty (nonexistent) user.
return NULL;
}
}
// If user is loaded (and no user ID is provided)
else
{
// Create a new user.
$new_user = create_user();
// Return the new user's ID.
return $new_user;
}
}
내 질문이 것은 :. 여기에 잘못된 값을 반환하는 내 방법 내 친구가 생성자는 항상 상관없이 객체를 반환해야한다고 주장한다?. 그러나 내가 여기에 제시된 방식은 훨씬 간단 해 보이며 작업하기가 훨씬 쉽습니다. (새로운 사용자를 만들면 그의 ID를 박쥐에서 바로 얻을 수 있습니다. 기존 사용자를로드하는 경우 즉시 그녀에게 접근 왜 나쁜?
"항상, 아무리 ..." – Jon
PHP에서는 반환 값이 적용되지 않습니다. http://stackoverflow.com/questions/2214724/php-constructor-to-return-a-null –
친구의 조언은 아마도 다른 언어에서 온 것입니다. –