php - 我正确使用类吗?
问题描述
我有两节课。数据库和产品。我成功地将 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;
现在看来我不需要属性。
解决方案
我会将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 因其字符转义技术而臭名昭著。从长远来看,准备好的语句和类型转换将使您的生活更轻松。
推荐阅读
- php - 亚马逊产品广告 API - PHP 致命错误
- azure-devops - 使用多个构建管道发布管道?
- javascript - 在Javascript循环函数中调用java方法
- c++ - 我的“罗马数字到整数”代码错误
- python - 在python3中,如何显式访问块范围之外但不在外部函数范围内的变量?
- typescript - TypeScript 缺少更高种类的类型的 ts(2345) 错误是否有任何解决方法?
- java - 如何从controlleradvice获取方法签名
- c# - 此自定义打印按钮和用于 rdlc 报告的 Java 脚本代码仅打印一页
- python - 如何计算给定字符串中每个元音的出现次数?
- java - Cast Spark 数据框的架构