PHP:是$ this-> something - >($ this-> foo) - > bar合法吗?

Cam*_*mel 5 php mongodb

这条线是合法的PHP吗?

$this->mongo->($this->db)->$collection_name->insert($document_name);
Run Code Online (Sandbox Code Playgroud)

如果$ this-> db是一个带有要使用的db名称的常量.

谢谢

Bol*_*ock 9

尝试使用花括号而不是括号:

$this->mongo->{$this->db}->$collection_name->insert($document_name);
Run Code Online (Sandbox Code Playgroud)

或者分配$this->db给本地var并使用它代替:

$db_name = $this->db;
$this->mongo->$db_name->$collection_name->insert($document_name);
Run Code Online (Sandbox Code Playgroud)


Ric*_*uin 1

不,字符串(以及常量)应该用括号括起来,如下所示:

$this->mongo->{$this->db}->$collection_name->insert($document_name);
Run Code Online (Sandbox Code Playgroud)