0

PHP Programming with MySQL (Chapter 10) から割り当てをコピーして、正しく動作させようとしています。次のエラーが表示されます: 致命的なエラー: 未定義のメソッド OnlineStore::setStoreID() への呼び出し。なぜ問題があるのか​​ わかりません。誰か助けてくれませんか?

ありがとうございました。

phpコードは次のとおりです。

if (class_exists("OnlineStore")) {
    if (isset($_SESSION['currentStore']))
    $Store = unserialize($_SESSION['currentStore']);
    else {
        $Store = new OnlineStore();
    }

$Store->setStoreID($storeID);
$storeInfo = $Store->getStoreInformation();
if (isset($_GET['ItemToAdd']))
    $Store->addItem();
}

else {
$ErrorMsgs[] = "The OnlineStore class is not available!";
$Store = NULL;
}
?>

そして、ここに他のコードの一部があります:

<?php
class OnlineStore {
private $DBConnect = NULL;
private $storeID = "";
private $inventory = array();
private $shoppingCart = array();
}

function __construct() {
include("inc_OnlineStoreDB.php");
$this->DBConnect = $DBConnect;
}

function __destruct() {
if (!$this->DBConnect->connect_error)
$this->DBConnect->close();
}

function setStoreID($storeID) {
if ($this->storeID != $storeID) {
    $this->storeID = $storeID;
    $SQLString = "SELECT * FROM inventory " . " where storeID = '" . $this-    >storeID . "'";
    $QueryResult = @$this->DBConnect->query($SQLString);
    if ($QueryResult === FALSE) {
        $this->storeID = "";
    }
    else {
        $this->inventory = array();
        $this->shoppingCart = array();
        while (($Row = $QueryResult->fetch_assoc())
                !== NULL) {
            $this->inventory[$Row['productID']] = array();
            $this->inventory[$Row['productID']] ['name'] =     $Row['name'];
            $this->inventory[$Row['productID']] ['description'] =     $Row['description'];
            $this->inventory[$Row['productID']] ['price'] =     $Row['price'];
            $this->shoppingCart[$Row['productID']] = 0;
        }
    }
}
}
4

1 に答える 1

1

このコード ブロックでは:

class OnlineStore {
private $DBConnect = NULL;
private $storeID = "";
private $inventory = array();
private $shoppingCart = array();
}

閉じ中かっこでクラスを早期に完成させます。その後に定義するすべての関数はクラスの外にあります。

于 2012-11-30T18:42:55.880 に答える