PHP:是$ this-> something->($ this-> foo) - > bar legal?

时间:2011-01-13 18:47:58

标签: php mongodb

这条线是否合法PHP?

$this->mongo->($this->db)->$collection_name->insert($document_name);

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

谢谢

5 个答案:

答案 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)