Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/285.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 - Fatal编程技术网

php类访问变量

php类访问变量,php,Php,我有以下PHP类: class connect { public function __construct() { $sql = new mysqli(...); return $sql; } (当然,这并不是全部代码,只是给你一个想法 然后我有: class two { public function validateInput($input) { $dbconn = new connect(); return $dbconn->real_escape_string($i

我有以下PHP类:

class connect {

public function __construct() {

$sql = new mysqli(...);

return $sql;

}
(当然,这并不是全部代码,只是给你一个想法

然后我有:

class two {

public function validateInput($input) {

$dbconn = new connect();

return $dbconn->real_escape_string($input);
}

但是,这会生成一个错误。如何从connect类调用$sql变量上的real_escape_string方法

干杯


PS:Update,错误是致命错误:调用未定义的方法connect::real\u escape\u string()

构造函数无法返回值;返回值是隐含的(一个新的对象实例)

在您的示例中,
$dbconn
是类
connect
的对象。它不是类
mysqli
的对象,因此它没有
real\u escape\u string
方法。
return$sql
语句没有效果,因为它没有意义


您可能打算扩展
mysqli
(这将是一件痛苦的事情,因为您必须转发所有构造函数参数),或者公开
mysqli
成员。

构造函数无法返回值;返回值是隐含的(一个新的对象实例)

在您的示例中,
$dbconn
是类
connect
的对象。它不是类
mysqli
的对象,因此它没有
real\u escape\u string
方法。
return$sql
语句没有效果,因为它没有意义


您可能打算扩展
mysqli
(这将是一件痛苦的事情,因为您必须转发所有构造函数参数),或者公开
mysqli
成员。

类connect将返回connect的实例,而不是mysqli。请尝试:

class connect extends mysqli {
  function __construct() {
    parent::__construct(..);
  }
}

类connect将返回connect而不是mysqli的实例。请尝试:

class connect extends mysqli {
  function __construct() {
    parent::__construct(..);
  }
}

您可能正在寻找更像:

class connect {
    public function __construct() {
        $this->sql = new mysqli(...);
    }

    public function real_escape_string($string) {
        // Process $string using $this->sql;
        return $string
    }
}

class two {
    public function validateInput($input) {
        $dbconn = new connect();

        return $dbconn->real_escape_string($input);
    }
}

您可能正在寻找更像:

class connect {
    public function __construct() {
        $this->sql = new mysqli(...);
    }

    public function real_escape_string($string) {
        // Process $string using $this->sql;
        return $string
    }
}

class two {
    public function validateInput($input) {
        $dbconn = new connect();

        return $dbconn->real_escape_string($input);
    }
}
看这个:看这个: