下面是我遇到的麻烦的一个非常基本的例子。PHP类范围问题
现在为什么我必须使用$ session = new Session();在database.class.php文件,当我在我的系统中的文件被包含在一个方式,它已经可见了。
换句话说,我不能调用$ session = new Session();在任何其他类之外,为了使它在其他类中工作,我必须调用在每个要使用它的类中创建会话类的新对象,我如何避免这种情况并使其工作,而无需这样做?
// Session.class.php
class Session{
public function __construct()
{
session_start();
}
public function set($name, $value)
{
$_SESSION[$name] = $value;
}
}
...
// Database.class.php
class Database{
public static function mysql_query_2($query)
{
if ($session->get('user_role') == 10){
$_SESSION['queries']++;
}
return mysql_query($query);
}
}
我在任何地方都看不到'$ session = new Session();'。它可以帮助我们理解你的问题。 – MitMaro 2009-09-23 00:00:10
@MitMaro对不起,这个类是在脚本的其他地方启动的,我只想开始它,但是这种方式现在要求我在每个使用另一个文件中的类的类文件中启动它 – JasonDavis 2009-09-23 00:13:35