PHP - 在另一个 class 中调用一个函数

PHP - Calling a function in another class

我有一个名为 connection.php 的 class,它包含与连接到我的数据库相关的所有内容,它还具有以下功能:

function connect() {
    $pdo = new PDO('mysql:host='.$host.';dbname='.$db.'', $user, $pw);
}

当我在下面的示例中尝试在另一个 class 中调用此函数时:

require('connection.php');
try {
    $connect();

} catch (PDOException $e) {
    die("Error, could not connect.");
}

这给我以下错误:

Fatal error: Function name must be a string in /home/[redacted]/public_html/[redacted]/authenticate.php on line 4

我做错了什么?

尝试

require('connection.php');
try {
    connect();

} catch (PDOException $e) {
    die("Error, could not connect.");
}

如果你写 $connect();它将检查未初始化的变量 $connect,这就是你收到错误的原因

如果你喜欢这样

require('connection.php');
$a = 'connect';
try {

    $a();

} catch (PDOException $e) {
    die("Error, could not connect.");
}

这会起作用 因为代替变量 $a connect 将被放置,然后它将搜索函数 connect(); 我希望这能帮助你更好地理解

只是为了补充 Aman 在这里所说的......你说你有一个包含函数 connect()class 但我没有看到 class 定义或任何表明您正在实例化一个新的 class。

所以假设它确实在 class

class database {
    function connect() {
       $pdo = new PDO('mysql:host='.$host.';dbname='.$db.'', $user, $pw);
    }
}

您现在需要创建此 class 的实例才能使用它。所以我们执行以下操作

$db = new database();
try {
    $db->connect();
} catch (PDOException $e) {
    die("Error, could not connect.");
}