gpt4 book ai didi

php - 从另一个函数调用公共(public)函数

转载 作者:行者123 更新时间:2023-11-30 01:20:49 25 4
gpt4 key购买 nike

我有一个数据库类,里面有几个 PDO 函数(db.inc.php)。我正在尝试从另一个函数调用此函数:

// Query method
public function query($query) {
$this->stmt = $this->dbh->prepare($query);
}

在我的全局 PHP 文件中,我使用以下方法实例化了数据库:

// Instantiate database
$database = new database();

但是,当尝试从不同 PHP 文件 (user.inc.php) 内的另一个函数调用此函数时:

function confirmAccount($key,$id) {
// Check key and id against entry in database
$database->query('SELECT * FROM users WHERE id = :id');
}

我收到以下错误:

fatal error :在第 10 行/home/studevne/public_html/includes/user.inc.php 中的非对象上调用成员函数 query()

我的所有 PHP 文件都包含在全局 PHP 文件中,如下所示:

include_once 'includes/db.inc.php';
include_once 'includes/echo.inc.php';
include_once 'includes/tools.inc.php';
include_once 'includes/user.inc.php';

我猜测它与数据库类及其函数的范围有关,但是我对如何解决这个问题有点困惑。非常感谢任何帮助。

最佳答案

您需要将 $database 传递到函数中,否则它将超出范围。您可以将其作为参数传递:

function confirmAccount($key,$id,$database) {
// Check key and id against entry in database
$database->query('SELECT * FROM users WHERE id = :id');
}

或者作为全局:

function confirmAccount($key,$id) {
global $database;
// Check key and id against entry in database
$database->query('SELECT * FROM users WHERE id = :id');
}

全局变量通常不受欢迎,因为它们很容易编写困惑的代码。

关于php - 从另一个函数调用公共(public)函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18560739/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com