PHP5环境中的全局问题

时间:2015-04-06 10:26:11

标签: php global

我有一个来自PHP4的项目,我正在转向PHP5环境。它是由其他开发人员长时间开发的。在此开发人员使用DB类创建了一个简单的数据库连接,

    $conn = new db(HOST,USER,PASS,DATABASE);

之后创建一个函数,并在此函数中将连接变量声明为全局

    function on_session_write($key, $val) 
    { 
        global $conn;

        error_log("$key = $value"); 

        $val = addslashes($val); 

        $query = "INSERT INTO tblSessions VALUES('$key','$val',UNIX_TIMESTAMP(date_add(now(), INTERVAL 1 HOUR)),now())"; 
        $result = $conn->db_query($query);
        $error = $conn->db_get_error_msg();                 
    }

我收到错误 致命错误:在非对象上调用成员函数db_query()...

为什么变量范围有限且在函数内部不可用?我们可以做什么,以便它可以在函数内部使用...

它与某些PHP5设置有关吗?

我们考虑采用以下解决方案,

1)如果我们决定将连接变量传递给函数,那么我们需要在很多地方进行更新,因为它已在很多地方使用过。

2)使用$ GLOBALS也没有任何区别。连接变量在$ GLOBALS中添加,但是当我们在函数内部执行var_dump时它是空的。在函数外部,它在$ GLOBALS

中显示连接变量

0 个答案:

没有答案