Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
类中未定义的PHP属性_Php_Oop_Pdo - Fatal编程技术网

类中未定义的PHP属性

类中未定义的PHP属性,php,oop,pdo,Php,Oop,Pdo,为了线程,我只有两个PHP类,一个用于数据库,一个用于数据库中的用户 在运行“在我的用户类中执行代码”时,我的浏览器上会显示一个PHP通知,说明 注意:未定义的属性:数据库::$escape in /第x行的my/directory/user.class.php 在我的Users类中,我有以下代码: $Database = new Database(); $submitData = array_map($Database->escape, $submitData); $result = $

为了线程,我只有两个PHP类,一个用于数据库,一个用于数据库中的用户

在运行“在我的用户类中执行代码”时,我的浏览器上会显示一个PHP通知,说明

注意:未定义的属性:数据库::$escape in /第x行的my/directory/user.class.php

在我的Users类中,我有以下代码:

$Database = new Database();
$submitData = array_map($Database->escape, $submitData);
$result = $Database->query("SELECT user_id FROM users WHERE email_address = " . $Database->quote($formData['email_address']));
在我的数据库类中,我有以下内容:

class Database { 
    private $db = array();
    private $connection;
    public $result;      

    public function escape($data) {
        return mysqli_real_escape_string($this->connection, $data);
    }   
...

在正确的回调中,正确的回调:

$submitData = array_map(array($Database, "escape"), $submitData);

我想,当您想使用时,请尝试给您的数据库实例取另一个名称

$Database->escape
,php指

Database::$escape

,它是类数据库的一个静态变量,未定义。

在代码中,您有$Database->escape的数组映射,它搜索该属性并抛出错误。您应该有一个可调用函数的名称,如“escape”或其他函数。

使用_set()和_get()魔术方法来避免此错误!!ah escape()是一个方法,试图作为成员变量进行访问