全局变量是先前已定义的类(对象)
class Users
{
private $sql;
public function __construct() {
global $sql;
$this->$sql = $sql;
}
}
我正在尝试将对象分配给我的其他类(用户)中的私有变量,因此我不必通过global $sql;
中的所有函数使用此行Users
,但它正在给出我这个错误:
Catchable fatal error: Object of class Bdcon could not be converted to string in /home/<<NAME>>/public_html/<<NAME>>/classes/class.users.php on line 8
答案 0 :(得分:1)
您无法(通常)将对象用作属性名称:
$this->$sql
^
但你真的不想要:
$this->sql
无论如何,我推荐其他风格:
class Users
{
private $sql;
public function __construct(Bdcon $sql) {
$this->sql = $sql;
}
}
答案 1 :(得分:1)
您没有以正确的方式访问private $sql
。它应该是:
$this->sql = $sql;
您收到错误的原因是,如果您使用$this->$sql
,$sql
会转换为字符串,而php会尝试查找名称为$sql
的属性
答案 2 :(得分:0)
使用$this->sql.
,因为您正在访问该类的属性,因此无需添加$符号而是使用$this->