繁体   English   中英

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

[英]PHP: is $this->something->($this->foo)->bar legal?

这条线是合法的PHP吗?

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

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

谢谢

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

$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);

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

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

$connection->db->collection只是简写:

$this->mongo->selectDB($this->db)->selectCollection($collection_name)->insert(...);

在你的情况下可能会更好。 但是,对于BoltClock的答案,+1也是如此,如果你想坚持使用$x->y->z风格。

不,你不能 - >() - >你有mongo - >($ this-> db) - > $ coll ...也许你在寻找

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

你想要$this->mongo->selectDB($this->db)->$collection_name->insert($document_name)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM