首页 > 解决方案 > 我正确使用类吗?

问题描述

我有两节课。数据库和产品。我成功地将 PHP 与 DB 连接起来,并且能够打印出数据。但我想知道我是否正确使用了 Product 类?如果将来我添加 Product 类方法 addProduct 我是否需要保留属性?

我的产品类别:

<?php
require_once 'DataBase.class.php';
class Product  {

    //Properties
   // var $id;
   // var $name;
   // var $price;


    //Methods
    function __construct(){}

    public function getAllProducts()
    {

        $db = Database::get();
        $sql = "SELECT * FROM product";
        $result = $db->select($sql);
        return $result;
    }       
}

$product = new Product;

现在看来我不需要属性。

标签: php

解决方案


我会将getAllProducts()功能与单个产品类分开。像这样:

<?php

require_once 'DataBase.class.php';

function getAllProducts()
{
    $db = Database::get();
    $sql = "SELECT * FROM product";
    $result = $db->select($sql);
    return $result;
} 

class Product  {

    // Properties:
    public $sku;
    public $name;
    public $price;
    public $size = '0';
    public $weight = '0';
    public $dimension = '0x0x0';

    // Methods
    function __construct($var1, $var2, $var3) // add or remove vars as needed
    {
        // use make a new product, example:
        $this->sku = $var1;
        $this->name = $var2;
        $this->price = $var3;
        // etc...
    }

}

$product = new Product($var1, $var2, $var3);
// do stuff with the product

您的构造函数应该处理实例化产品信息以供您的数据库使用。此外,PHP 因其字符转义技术而臭名昭著。从长远来看,准备好的语句和类型转换将使您的生活更轻松。


推荐阅读