【发布时间】:2014-12-05 22:14:24
【问题描述】:
谁能告诉我为什么这不起作用。
class class1 {
private $database;
function class1()
{
$database = $this->connect();
}
private function connect(){
$database = mysqli_connect("localhost","username","","db");
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
return $database;
}
private function usedb(){
$query = "some sql";
mysqli_query($database,$query);
}
}
我希望这个简单的例子可以足够清楚地描述我的问题。无论如何,当我运行这样的事情时,我会显示一个错误,告诉我在“usedb()”函数中引用了一个未定义的变量“database”。好像变量已经超出范围...谁能给我一个解决方案?
【问题讨论】:
-
因为变量已经超出了范围。
$database是函数中的局部变量;你应该使用$this->database来访问类的属性。 -
@andrewsi 是对的:在 PHP 中,您需要使用
this关键字来访问类成员,这与 Java 或 C# 不同。