【问题标题】:Undefined PHP property in class [duplicate]类中未定义的 PHP 属性 [重复]
【发布时间】:2014-02-25 18:30:27
【问题描述】:

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

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

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

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

$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);
    }   
...

【问题讨论】:

  • 使用 __set() 和 __get() 魔术方法来避免这个错误!!
  • ah escape() 是一个方法,你试图作为成员变量访问

标签: php oop pdo


【解决方案1】:

不正确的回调,正确的回调:

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

【讨论】:

    【解决方案2】:

    我想,当你想使用的时候,试着给你的数据库实例另一个名字

    $Database->escape
    

    ,php指的是

    Database::$escape
    

    ,是Database类的静态变量,没有定义。

    【讨论】:

      【解决方案3】:

      在您的代码中,您有 $Database-> 转义的 array_map,它搜索该属性并引发错误。您应该有一个可调用函数的名称,例如“escape”或其他一些函数。

      【讨论】:

        猜你喜欢
        • 2014-02-26
        • 2017-09-15
        • 2021-09-16
        • 1970-01-01
        • 2017-04-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-04-08
        相关资源
        最近更新 更多