好的,假设我有两个文件,一个名为Users的MySQL表和一个名为Select的表。

  • 的index.php
  • fucntions.php

用户

 ID NAME L_NAME POINTS 0 Jill Jackson 10 1 Jack Wills 90 2 John Doe 30 

选择

 ID OPTION 0 Points 1 Name 2 LastName 

index.php包含一个简单的表,并选择类似的表。

<?php include 'output.php'; ?>

<h3>Sort by: </h3>

<select>
  <?php getSelect(); ?>
</select>

<table>
  <tr>
    <th>Firstname</th>
    <th>Lastname</th> 
    <th>Points</th>
  </tr>
  <tr>
  <?php outputData(); ?>
  </tr>
</table>

我的fucntions.php文件具有以下代码:

function outputData() {
    try {
        $handler = new PDO("mysql:host=$host;dbname=$db", "$user", "$pass");
        $handler->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    } catch (PDOException $e)
     {
        echo $e->getMessage();
        echo 'Sorry, an error has occurred.';
        die();
     }

    $query = $handler->query('SELECT * FROM `Users`');

    while($r = $query->fetch(PDO::FETCH_OBJ)) {
    echo
        '
            <td>
                <input type="text" value="'.$r->Name.'" >
            </td>
            <td>
                <input type="text" value="'.$r->l_name.'">
            </td>
            <td>
                <input type="text" value="'.$r->points.'">
            </td>
        ';
    }
}

function getSelect() {
    try {
        $handler = new PDO("mysql:host=$host;dbname=$db", "$user", "$pass");
        $handler->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    } catch (PDOException $e)
     {
        echo $e->getMessage();
        echo 'Sorry, an error has occurred.';
        die();
     }

    $query = $handler->query('SELECT * FROM `Select`');

    while($r = $query->fetch(PDO::FETCH_OBJ)) {
    echo
        '
            <li>'.$r->option.'</li>
        ';
    }
}

我将使用此代码将数据输出到多个不同的页面上。 这只是一个非常基本的示例...我有多种不同的功能,用于从表中输出和插入数据。 我的问题是,使用类是否比仅编写像我在此处这样的裸函数并将其包含在我需要的每个页面中更好的选择?

与我目前在做什么相比,使用类有什么好处?

我看过各种有关如何构造类的教程,但我从未真正发现过与当前正在做的事情相比有什么好处的真正需要...

有人可以详细说明吗?

#1楼 票数:1 已采纳

对我来说,至少在您给出的情况下,使用类的主要需求是帮助

  • 代码的可读性。 使用代表现实生活中某些事物的对象,代码更具可读性,而且,您也不会将所有功能弄乱到一个或几个文件中。 如果一个函数影响一个类(尽管它是非常相关的,fi会使用其类成员),则您知道class.php是您应该在其中创建该函数以及在其中找到它的地方。

  • 代码的可维护性。 出于同样的原因,代码更具可维护性。 您知道对象应该执行的操作,可以轻松阅读代码应执行的操作以及在何处执行。 这有助于进行恕我直言的调试。 同样,当您以更直观的方式进行编程时,可以知道哪些数据进入了类,以及可以使用包含该数据的对象的哪种方法。

  • 封装。 在编程时,此概念需要付出更多的努力,因为您必须注意哪些成员可以被其他类的其他实例或主代码访问,但可以防止很多错误。 例如,可以防止您正在调试并且期望变量的值与实际发生的情况不符的情况……这都是因为在某处有一段代码更改了该值,而您却没有甚至意识到。

  • 可重用性。 您的班级可能会在其他项目中有用,但需要进行一些更改(并且很容易找到需要更改的位置和内容)

当然,应该有更多的原因,但是这些是我想到的主要原因。 顺便说一句,在小型项目或项目的一部分中,使用过程编程可以更容易,更快甚至更干净。

  ask by Ashley Brown translate from so

未解决问题?本站智能推荐:

3回复

使用多个PHP类的最佳方法是什么?

我在这个网站上查找了类似的问题并找到了一些有用的资源,但有人可以帮我解决这个问题...... 我正在使用PDO连接到MySQL数据库。 我想利用课程并对它们有基本的了解。 首先,我是否通过一个负责数据库连接的db类以正确的方式处理事情? 其次,我希望其他类(在单独的文件中)为我的用
2回复

PHP:在类中使用数据库

我已经有一个数据库文件,当我包含它时连接到数据库 类为database.php 我通常通过以下方式访问: 这是一个问题: 如何从另一个类中访问$db ? 例如,如果我有一个名为class-html.php的类文件并且在该类中 (AKA,作为类代码的一部分),我需要像......这
1回复

PHP优化客户类中的查询

我有类Customer ,其中包含链接到客户的所有功能。 我有function info($column) ,它对表客户进行简单的SELECT查询。 在我的系统中,有一个显示所有客户信息的页面,每个字段都有$customer->info('fieldname')代码,用于从数据库中选
2回复

PHP:使用一个类来建立并返回一个PDO句柄

为避免另一个弃用问题,我想使用一个类连接到我的数据库,并让该类返回数据库句柄,以便于使用。 为了更具体一点,我想要一个类以便: 立即连接到数据库。 根据情况以管理员或只读访问权限进行连接。 通过使用此类使$ db变为$ dbh 因此,$ db成为一个开放的PDO连接(
2回复

从PHP中的类内部数据库获取数据

如何在类内部从数据库中获取数据? 我的数据库中有一个users表,我想以面向对象的方式访问此数据。 这意味着我不想一直在我的代码中编写查询,而是想通过说$Users->getUserById(2)->getName();来获取此数据$Users->getUserById(
2回复

PHP在类内调用数据库类

对课程和PDO来说是全新的。 我在Google上搜索了几个小时,以找到可能是一个简单问题的解决方案。 事情是。 我做了一个类来连接到我的数据库。 然后,我制作了一个类,使用查询从数据库加载信息。 然后,我使用脚本来组合两个类。 虽然,即使我已连接到数据库,但在其他课程中仍然很难理解
3回复

如何使用PDO在PHP中从数据库获取参数

我正在开发一个设置类来管理存储在数据库中的某些参数,并且我试图使一个类更有效,更短,所以我这样做: 首先,我添加了一个db.php文件,在其中配置并连接了数据库,之后我将参数添加为私有属性。 为了以更好的方式处理它们,所有这些都包含在数组中,因此我在处理信息的变量“ consulta”中构
1回复

PHP-创建用于数据库访问的类

我想使用类创建数据访问。 但是出现问题。 我的文档根目录是public_html,所以我的/ resources文件在文档根目录之外 我在/resources/dal/task.php中有一个数据访问层类 这是我的主页(在public_html内)index.php 我得到这个错