2015-05-18 136 views
2

我有一個被稱爲connection.php具有相關的所有連接到我的數據庫類的東西,還具有以下功能: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."); 
} 

這給我下面的錯誤:

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

我在做什麼錯了?

+2

你有兩個右括號'}' – Machavity

+0

^*編輯感謝,但仍是同樣的問題 –

回答

2

只是爲了補充什麼祖阿曼這裏說的......你說你有一個class包含函數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."); 
} 
8

嘗試

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

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

,如果你寫$連接();它會檢查該變量,如果你喜歡這款

​​

這將工作 $連接這是不是被初始化所以這就是爲什麼你所得到的錯誤

由於地方變量$一個連接意志被放置,然後它將搜索函數connect(); 我希望這將有助於你更好地瞭解

+1

您可能要解釋你在這裏做什麼。提示:說說你用'$'做了什麼 – Machavity

+0

好的函數執行,但它返回一個致命錯誤,並沒有連接到我的數據庫...現在的問題是什麼? –

+0

如果這解決了您的問題,請接受此答案 –