Php 我正确地使用课堂了吗?

Php 我正确地使用课堂了吗?,php,Php,我有两节课。数据库和产品。我成功地将PHP与DB连接,并且能够打印数据。 但我想知道我是否正确使用了类产品?如果将来我添加Product类方法addProduct,我应该保留属性吗 我的产品类别: <?php require_once 'DataBase.class.php'; class Product { //Properties // var $id; // var $name; // var $price; //Methods fu

我有两节课。数据库和产品。我成功地将PHP与DB连接,并且能够打印数据。 但我想知道我是否正确使用了类产品?如果将来我添加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;

我将
getAllProducts()
函数与单个products类分开。像这样:

<?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类中定义它们,但是,如果您定义它们,zend engine将优化内存消耗,因此,是的,您可以跳过定义它们,但是如果您使用属性,则代码将更加混乱,需要更多内存。不要使用“var”关键字来声明它们。这将在PHP5的某些版本中起作用,但已被弃用,可能在PHP7中根本不起作用(我对此不确定)。你应该使用“公共”、“私有”或“保护”,这取决于所需的范围。考虑让GealAlgStices静态-或者把它移到其他类——它不是OOP…