[英]PHP - Calling a function in another class
我有一個名為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/[redacted]/public_html/[redacted]/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(); 我希望這能幫助你更好地理解
只是為了補充Aman在這里所說的...你說你有一個包含函數connect()
的class
,但是我沒有看到類定義或者你正在實例化新類的任何跡象。
所以我們說這真的是在課堂上
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.");
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.