2015-05-18 97 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

如果这解决了您的问题,请接受此答案 –