【发布时间】:2015-09-13 18:25:51
【问题描述】:
我刚刚开始学习 OOP,因为在处理大型项目时,我通常的程序方法开始变得混乱。我很早就遇到了一些我不确定的事情。
这个想法只是将新成员添加到数据库中,并从数据库中提取现有成员的列表。
我在我的代码中加入了一些 cmets 以及下面的问题。
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'];
}
}
成员列表.php
$memberManager = new memberManager();
$membersList = $memberManager->getAllMembers($db);
foreach ($membersList as $existingMember)
{
$member = new member($existingMember);
}
- 当我创建一个新成员时,我应该传入一个数组还是单独传递每个项目?我做一个数组的原因是它允许我很容易地向它添加新参数,特别是如果我存储了很多关于成员的数据,而不是 *function createMember($db, $firstname, $lastname, $出生日期等)
- 在我的“getAllMembers”函数中,因为它会拉出每个成员,我应该像在此处所做的那样将它们放入一个数组中,然后在我的 members-list.php 上循环遍历该数组创建对象,或者我应该实例化该成员() 类直接在“getAllMembers”中,只返回一个对象数组?
希望这是有道理的,它以有点伪代码的方式编写只是为了突出问题。
【问题讨论】:
-
这个问题可能更适合codereview.stackexchange.com。