我试图理解为什么这不起作用,因为我是PHP新手我还没有提出解决方案。
背景:我有一个DB连接类(工作正常)。我想通过在我的所有函数之外创建DB对象来清理我的代码,然后我可以在每个函数中使用它(而不是为每个函数创建一个新的DB对象)。我在DB类中提取数据,然后在另一个文件中调用所需的方法,我可以打印/显示数据。
以下是一个例子:
这不起作用:它产生:致命错误:在非对象上调用成员函数getProductsOnSale()
require("DB.class.php");
include_once 'functions.php';
$db = new DB();
function displaySalesProducts(){
$salesProduct = $db->getProductsOnSale();
//STUFF METHOD DOES
}
但是,这可以工作
require("DB.class.php");
include_once 'functions.php';
function displaySalesProducts(){
$db = new DB();
$salesProduct = $db->getProductsOnSale();
//STUFF METHOD DOES
}
我正在寻找一些有关为什么会发生这种情况的见解,因为我还没有很好地掌握php。谢谢!