正确使用类和对象?

时间:2014-02-06 16:36:07

标签: php class oop object pdo

所以有一些很棒的反馈,回过头来仔细阅读OOP。你会说这是正确的吗?我在index.php中设置变量你可以使用pdo查询数据库来获取用户数据,然后说出循环对象吗?

的index.php

<?php
// This is where you could query the db?
$firstname = "Vaughan";
$lastname = "Slater";
$age = 20;

// Create two new users
$user1 = new user($firstname, $lastname, $age); // From variables
$user2 = new user("Tom", "Jones", 41); // Static set

// Output new users & could you then loop this to pull a list of users from a query
echo print_r($user1, TRUE);
echo print_r($user2, TRUE);
?>

class.php

class user
{
    private $_firstname;
    private $_lastname;
    private $_age;

    public function __construct($firstname, $lastname, $age)
    {
        $this->_firstname = $firstname;
        $this->_lastname = $lastname;
        $this->_age = $age;
    }
}

我认为我正在取得进步,只是想确保我再次做错了。这让我想起了html和css之间的关系。

1 个答案:

答案 0 :(得分:1)

基础已经布局,但现在是复杂的部分。

您必须查询数据库。你会得到一个集合来循环。对于您获得的每个项目,您必须将数据复制到对象中并将它们放在一个集合中(例如,数组):

$users[] = new user($row['firstname'], $row['lastname'], $row['age']);

请注意,您可以使用`pdo_mysql'指示直接获取对象而不是行,以便自动完成复制。

接下来,您将遍历已构建的集合并进行渲染。 这些段落不是必需的,您可以直接呈现数据库查询结果。

这是指向wiki的快速指针,显示如何使用pdo_mysql

如果你想对应用程序进行分层,你将不得不做这些段落,这是一个很好的(最好的)练习。

这样,每个周期都将在不同的层次完成,数据从一个层传递到下一层:

persistence   (queries DB and populates $users[] array)
     |
     v
business      (process data according to business logic)
     |
     v
presentation  (render the results in HTML)

从上到下是数据通过层次的方式。

但是,通常情况下,地层以完全相反的方式(从下到上)显示。