簡體   English   中英

PHP - 在另一個類中調用函數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM