[英]PHP - OOP return objects or array?
我剛開始學習OOP,因為在處理較大的項目時,我通常的程序方法開始變得混亂。 我碰到了一些我不確定的事情。
這個想法只是將新成員添加到數據庫,然后從數據庫中提取現有成員的列表。
我在代碼中以及以下問題中添加了一些注釋。
class memberManager
{
public $members;
public function createMember($db, $array) // Should I pass in an array or seperate items?
{
// Db code
}
public function getAllMembers($db)
{
// Should I return an array, then loop through in my script creating the "member" objects, or should I create and return them directly in this function?
$dbconnection = $db->prepare("SELECT * FROM members");
$dbconnection->execute();
$x = 0;
while ($row = $dbconnection->fetch())
{
$members[$x]['firstname'] = $row['firstname'];
$members[$x]['lastname'] = $row['lastname'];
$members[$x]['dob'] = $row['dob'];
$x++;
}
return $members;
}
}
class member
{
public $firstname, $lastname, $dob;
function __construct($details)
{
$this->firstname = $details['firstname'];
$this->lastname = $details['lastname'];
$this->dob = $details['dob'];
}
}
會員制list.php的
$memberManager = new memberManager();
$membersList = $memberManager->getAllMembers($db);
foreach ($membersList as $existingMember)
{
$member = new member($existingMember);
}
希望這是有道理的,只是為了突出問題而以一種偽代碼的方式編寫。
我將傳遞一個數組。 如您所說,添加新屬性更加容易。
我將返回一個對象數組,並且我將擁有一個成員實體,這將使使用屬性更加容易。 我的回答只是個人意見。
注意:這個問題可以有多個不同的答案,因為這將取決於開發人員的偏好
我知道我並沒有完全回答您的問題,但是對於基本的CRUD,我真的會推薦一些ORM框架。
關於您的問題,我認為在數組上使用單獨的實體類是一種方法-您犧牲了靈活性,但作為回報,您可以將實體特定的邏輯放在一個地方,這與DRY原理非常吻合。
另請注意,您的班級命名略有不同。 盡管PHP並沒有明確的任何命名約定,但對於類名, PascalCase卻被廣泛使用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.