我对PHP的OOP方法相对较新,但只是想澄清一些事情:
if(isset($_POST['insertProduct']) && !empty($_POST['productName'])){
$newProduct = new product();
$newProduct->productName = $_POST['productName'];
$newProduct->servingSize = $_POST['servingSize'];
$productID = $newProduct->insertProduct();
}
因此,当表单发布到页面以将新产品输入DB时,将执行上述代码。
$selectProduct = new product();
if($selectProduct->getProducts()){
foreach($selectProduct->getProducts() as $product){
echo '<option value="' .
$product['productID'] . '">' .
$product['productName'] . '</option>';
}
}
以上部分位于同一页面上,显然现在存在两个产品类实例(假设已发布表单以添加新产品)。这是否显示出OO方法的好处?在使用两个实例访问不同的方法时?或者做我想做的事情是不好的方式?
答案 0 :(得分:0)
我认为getProducts
至少应该是一个静态方法,因为它与产品实例无关。
产品类应仅表示产品的单个数据,因此应将通用非实例方法设置为静态或移至另一个类。
我建议您创建一个Factory类,为您创建product
个实例:
$array = FactoryProducts::getProducts();
但是你肯定需要将该方法移到product
类之外。
其余的一切都很好。