【问题标题】:passing variables between classes and database function在类和数据库函数之间传递变量
【发布时间】:2014-02-27 14:50:57
【问题描述】:

我刚刚进入 OOP,我正在努力以正确的方式做所有事情。

我有一个 Product 类,有两个方法 RetrieveFromDatabaseDisplay RetrieveFromDatabase 访问产品ID 的一个参数,它基本上运行我在我的抽象类中编写的 PDO 语句(不知道这是否正确,因为 PDO 已经有一些这样的功能)。它使用此 ID 来获取产品详细信息。

Display这个函数的想法是渲染产品细节。在此示例中,我只有 1 个 html,但我计划添加更多内容,因为我不知道如何将它们中的每一个传递给 div,这在我听说之前不在函数中(通常我这样做(<div> <?php echo $name; ?> </div>)哎呀。

Class Product {

    public $name;   
    public $price;
    public $length;
    public $description;
    public $type;
    private $results;
    private $database_connection

    private function __construct(Database $database_connection) {
        // database connection
        $this->database = dbconnect(); 
    }

    public function RetrieveFromDatabase($id) {
         $sql->database_connection->query('select Name, price, length, description FROM product WHERE id = :id');
         $sql->database_connection->bind(':id', $id);
         $sql->database_connection->execute();

         return $this->results !== false;
        //Retrieve the product details from database.
    }

    public function Display() {
    //display the product information
      while(($row = mysql_fetch_row($this->results)))
       print_r($row);
    echo <p> $this->database_connection->price </p>;
    }

    $Product = New Product();
}

我的问题

如何以正确的方式编写上述代码,而不必在类文件中包含任何 html?如果我犯了任何愚蠢的错误,也请纠正我。

【问题讨论】:

  • 要求纠正愚蠢的错误只是在浪费 Stack Overflow 的强大功能——不是吗?至少您可以自己使 DB api 使用一致
  • 如果不教人们如何不犯“愚蠢的错误”,那么您所说的“Stack Overflow 的强大功能”究竟是什么?
  • @holodoc 因为这是他们的父母和小学老师的职责。
  • @YourCommonSense 我知道有一些聪明人发现很难理解和使用 OOP PHP。它不像我不想去理解它或不去尝试它。记住我为什么要学会正确地做是因为一旦你开始以错误的方式编程,就很难将其更改为正确的方式,我相信你知道什么。您开始编写代码的方式不是正确的吗?
  • @YourCommonSense 不幸的是,我的父母不是写代码的,所以没有人能纠正我的错误,只有在我尝试做错事时问愚蠢的问题才能纠正我的错误,我学到了这么多

标签: php oop pdo


【解决方案1】:

暂时不要尝试 OOP。

事实上,你以错误的方式尽可能地把所有事情都弄错了。

更不用说您对所使用的 API 的概念还很模糊。因此,最好坚持旧的良好程序风格,直到您掌握 PHP 基础知识并从各种来源学习一些 OOP。

更新。不要尝试创建自己的课程,而是从现成的课程中学习。给自己一个框架,所有有学识的开发人员都已经倾向于使用它,它会通过示例教你正确的 OOP 方法。 Yii 和 Laravel 看起来最有前途。

【讨论】:

  • -1 我几乎从不投反对票。在这种情况下,态度和“愚蠢”的答案对我来说是一个明显的例外。
  • 我尊重您的意见,但对我来说,这是可以给出的最有帮助的答案。要学习一些东西,必须达到某个水平,必须具备一些知识才能掌握新知识。没有它只会浪费时间
  • 谢谢。 “各种来源”会很好地向我推荐一个好的来源。因为很多消息来源都没有你想象的那么好。
  • @user3057514 我并不是说它是一种一次性的累积学习。但恰恰相反,我的意思是你会在这里和那里遇到 OOP,到那时你会有所了解。
猜你喜欢
  • 1970-01-01
  • 2020-07-02
  • 1970-01-01
  • 2012-08-19
  • 1970-01-01
  • 2013-04-09
  • 2013-03-07
  • 1970-01-01
相关资源
最近更新 更多