只是寻找某些代码的清晰度。
我正在查看一个Controller类,它有一个名为$ grid的受保护变量,里面有一个__construct函数连接到MongoDB,之后就有这个代码:
$this->grid = $mongo->selectDB($database)->getGridFS();
继续在另一个类和方法的脚本中,我有代码
foreach ($this->grid->find() as $file) {
我是否正确地认为foreach正在使用第一个定义的$ this->网格是$ monmgo-> selectDB?
非常感谢
答案 0 :(得分:0)
值得在PHP5 objects and classes上阅读__construct()
,$this
,方法调用链是PHP中基本的面向对象的实现概念。
PHP方法调用在您的代码示例中被链接,这意味着一个方法的结果将被传递到下一个方法(从左到右)。
$this->grid = $mongo->selectDB($database)->getGridFS();
所以这段代码执行:
getGridFS()
)的结果分配给变量$this->grid
$this->grid
最终会成为新的MongoGridFS对象(基于getGridFS()
的返回类型。
foreach
正在迭代MongoGridFS对象find()
method的结果,该对象将是MongoGridFSCursor。