这条线是否合法PHP?
$this->mongo->($this->db)->$collection_name->insert($document_name);
如果$ this-> db是一个带有要使用的db名称的常量。
谢谢
答案 0 :(得分:9)
尝试使用花括号而不是括号:
$this->mongo->{$this->db}->$collection_name->insert($document_name);
或者将$this->db
分配给本地var并改为使用它:
$db_name = $this->db;
$this->mongo->$db_name->$collection_name->insert($document_name);
答案 1 :(得分:2)
不,字符串(以及你的常量)应该用括号括起来,如下所示:
$this->mongo->{$this->db}->$collection_name->insert($document_name);
答案 2 :(得分:1)
$connection->db->collection
只是简写:
$this->mongo->selectDB($this->db)->selectCollection($collection_name)->insert(...);
在您的情况下可能会更好。但是,对于BoltClock的回答,如果你想坚持使用$x->y->z
风格,那也是+1。
答案 3 :(得分:0)
不,你不能 - >() - >你有mongo->($ this-> db) - > $ coll ... 也许你在寻找
$this->mongo($this->db)->$collection_name->insert($document_name);
答案 4 :(得分:0)
你想要$this->mongo->selectDB($this->db)->$collection_name->insert($document_name)