php类访问变量
我有以下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
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);
}
}
看这个:看这个: