在PHP中使用OOP从查询中检索数据

在PHP中使用OOP从查询中检索数据,php,mysql,sql,oop,Php,Mysql,Sql,Oop,我有一个检索用户数据并在页面上显示该数据的页面。我的代码工作得非常好,但我很难理解什么时候使用面向对象进行web开发。我当前的页面非常简单,我的理解是OOP在创建对象时会消耗大量的处理能力。像这样的简单页面是否需要使用OOP <?php session_start(); require $_SERVER['DOCUMENT_ROOT'] . "/connection.php"; if ($_SESSION["id"] != ""){ $result

我有一个检索用户数据并在页面上显示该数据的页面。我的代码工作得非常好,但我很难理解什么时候使用面向对象进行web开发。我当前的页面非常简单,我的理解是OOP在创建对象时会消耗大量的处理能力。像这样的简单页面是否需要使用OOP

<?php
    session_start();
    require $_SERVER['DOCUMENT_ROOT'] . "/connection.php";
    if ($_SESSION["id"] != ""){
        $result = $db->query("
            SELECT `Username`, `Image`, `FirstName`, `LastName`, `Type`
            FROM Users WHERE `id` = '{$_SESSION['id']}'
        ");
        if ($result->num_rows == 0){
            $switch = false;
        } else {
            $resultSet = $result->fetch_array();
            $avatar = $resultSet["Image"];
            $account_type = $resultSet["Type"];
            $username = $resultSet["Username"];
            $fName = $resultSet["FirstName"];
            $lName = $resultSet["LastName"];
            $id = $_SESSION["id"];
            $switch = true;
        }
    }
?>

可能是个人偏好,但我不会使用任何资源来复制变量

我将使用$resultSet响应。要使用该变量,我将:

echo $resultSet["LastName"];
如果必须使用变量,则可以使用关联数组和循环:

foreach ($resultSet AS $k => $v {
    ${$k} = $v;
}

取决于数据库中列的名称,它将成为变量名。

可能是个人偏好,但我不会使用任何资源来复制变量

我将使用$resultSet响应。要使用该变量,我将:

echo $resultSet["LastName"];
如果必须使用变量,则可以使用关联数组和循环:

foreach ($resultSet AS $k => $v {
    ${$k} = $v;
}

根据数据库中列的名称,它将成为变量名。

我想你可以说,一旦代码变大,OOP就会变得更理想,但从OOP开始始终是可伸缩性和易于理解的代码的好选择

基本上你有一个文件,里面有一个函数,如果你想检索其他与用户相关的东西,你可能会创建另一个文件,里面有另一个函数,调用类似的东西。你可以有这样的东西:

class User {
    private $id;
    private $username;
    private $firstName;
    private $lastName;
    private $type;
    private $image;

    function __construct($id) {
        // TODO SQL stuff

        $this->id = $id;
        $this->username = // blahblah
    }
}
它可以有各种各样的函数(在一个类中称为方法),并且都可以隐藏在一个单独的用户类中。当您或其他人向项目写入代码位时,他们不需要知道用户的内部代码,他们只需要知道您的方法在输入Y时返回X,他们的代码位可以是:

$user = new User($id);
return $user->doSomeMethod();
如果您希望稍后获得用户的全名,则不需要创建一个单独的文件来执行相同的SQL内容,您只需将其添加到用户类中(并向其添加一些注释):

然后,您可以在代码的其余部分对用户对象调用getFullName()。您不希望将与同一主题(用户)相关的代码分散在不同的区域,这会使工作更加困难


至于处理能力,我不太确定,但如果它有助于保持代码干燥(不要重复)和易于理解,那么使用OOP是一个好主意。

我想你可以说,一旦代码变大,OOP会变得更理想,但从OOP开始始终是可伸缩性和易于理解代码的一个好选择

基本上你有一个文件,里面有一个函数,如果你想检索其他与用户相关的东西,你可能会创建另一个文件,里面有另一个函数,调用类似的东西。你可以有这样的东西:

class User {
    private $id;
    private $username;
    private $firstName;
    private $lastName;
    private $type;
    private $image;

    function __construct($id) {
        // TODO SQL stuff

        $this->id = $id;
        $this->username = // blahblah
    }
}
它可以有各种各样的函数(在一个类中称为方法),并且都可以隐藏在一个单独的用户类中。当您或其他人向项目写入代码位时,他们不需要知道用户的内部代码,他们只需要知道您的方法在输入Y时返回X,他们的代码位可以是:

$user = new User($id);
return $user->doSomeMethod();
如果您希望稍后获得用户的全名,则不需要创建一个单独的文件来执行相同的SQL内容,您只需将其添加到用户类中(并向其添加一些注释):

然后,您可以在代码的其余部分对用户对象调用getFullName()。您不希望将与同一主题(用户)相关的代码分散在不同的区域,这会使工作更加困难


至于处理能力,我不太确定,但如果它有助于保持代码的干爽(不要重复)和易于理解,那么使用OOP是一个好主意。

Hmm,因此最终它只是使在web开发中使用OOP时更具可读性和更好的管理。对于我当前的项目,我已经将这个PHP文件包含在所有其他web文件中。因为PHP变量可以在整个文件中使用,所以我只会在需要时调用它们。例如,如果我想显示图像,我会说
echo”“并显示图像。我不理解创建函数来返回这些变量的必要性,这就是为什么我在代码中很难实现OOP的原因如果我创建了一个包含了与操作和显示用户数据相关的函数的类,并将该类文件包含到我站点的每个页面,性能不会因为添加了额外的代码而降低吗?假设我只想在某个页面上显示用户名,并且我添加了类文件,如果我只想检索用户名,那么类文件不是一个开销吗?OOP并不是万能的解决方案,在某些情况下,它可能会牺牲性能以提高效率,同样,你也不会编写5个几乎相同的函数,因为它们单独运行的速度会比一个内部有额外逻辑的函数快。嗯,所以最终,当在web开发中使用OOP时,它只是让它更可读,更易于管理。对于我当前的项目,我已经将这个PHP文件包含在所有其他web文件中。因为PHP变量可以在整个文件中使用,所以我只会在需要时调用它们。例如,如果我想显示图像,我会说
echo”“并显示图像。我不理解创建函数来返回这些变量的必要性,这就是为什么我在代码中很难实现OOP的原因如果我创建了一个包含了与操作和显示用户数据相关的函数的类,并将该类文件包含到我站点的每个页面,性能不会因为添加了额外的代码而降低吗?假设我只想在某个页面上显示用户名,我