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.");
}
我有一个名为 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.");
}