gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 07:07:55 25 4
gpt4 key购买 nike

我有一个页面,用于检索用户数据并在页面上显示该数据。我的代码工作得很好,但我无法理解何时使用 OOP 进行 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;
}
}
?>

然后,信息将显示在 HTML 中。例如,当我想显示名称时,我只需回显它即可。像这样echo "<p>$fName</p>";这种方法是否应该改为面向对象的方法?或者我的设计是否合适?

最佳答案

我想您可能会说,一旦您的代码变得更大,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
}
}

它可以具有各种函数(称为类中的方法),并且它们都将隐藏在单独的 User 类中。当你或其他人向项目编写代码时,他们不需要知道 User 的内部代码,他们只需要知道当 Y 放入你的方法时返回 X,他们的代码可以只是:

$user = new User($id);
return $user->doSomeMethod();

如果你想稍后获得用户的全名,你不需要创建一个单独的文件来执行相同的 SQL 操作,你只需将其添加到你的 User 类中(并添加一些注释它):

/**
* Returns the proper case of the user's first and last names
* @return String - full name of user
*/
public function getFullName() {
return ucwords($this->firstName . " " . $this->lastName);
}

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

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

关于php - 在 PHP 中使用 OOP 从查询中检索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40952021/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com