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

PHP-在另一个类中调用函数,php,function,pdo,connect,Php,Function,Pdo,Connect,我有一个名为connection.php的类,它包含与连接到我的数据库相关的所有内容,它还具有以下功能: function connect() { $pdo = new PDO('mysql:host='.$host.';dbname='.$db.'', $user, $pw); } 当我尝试在下例中的另一个类中调用此函数时: require('connection.php'); try { $connect(); } catch (PDOException $e) {

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

function connect() {
    $pdo = new PDO('mysql:host='.$host.';dbname='.$db.'', $user, $pw);
}
当我尝试在下例中的另一个类中调用此函数时:

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

} catch (PDOException $e) {
    die("Error, could not connect.");
}
这给了我以下错误:

致命错误:函数名必须是第4行/home/[redact]/public\u html/[redact]/authenticate.php中的字符串

我做错了什么?

试试看

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.");
}
这会奏效的 因为将放置一个connect来代替变量$a,然后它将搜索函数connect();
我希望这能帮助你更好地理解

只是为了补充阿曼在这里说的话。。。您说您有一个
,其中包含函数
connect()
,但我看不到类定义或任何指示您正在实例化一个新类

所以让我们假设它真的在课堂上

class database {
    function connect() {
       $pdo = new PDO('mysql:host='.$host.';dbname='.$db.'', $user, $pw);
    }
}
您现在需要创建该类的实例才能使用它。因此,我们做以下工作

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

您有两个结束括号
}
^Edited*谢谢,但仍然存在相同的问题您可能想解释一下您在这里做了什么。提示:谈谈你用
$
做了什么好吧,函数会执行,但返回时会出现致命错误,并且不会连接到我的数据库。。。现在有什么问题?你必须使用异常处理。我正在使用异常处理。我的问题是现在它没有连接到数据库。现在“catch(PDOException$e)”被捕获