PHP中集合和数组的区别是什么?



收集和按需补水
使用集合而不是数组的优点是,Propel可以按需生成模型对象。使用这个特性,在检索大量结果时永远不会出现内存不足的情况。可通过模型查询的setFormatter()方法,按需补水非常容易触发:

<?php
 $authors = AuthorQuery::create()
   ->limit(50000)
   ->setFormatter(ModelCriteria::FORMAT_ON_DEMAND)
   ->find();
foreach ($authors as $author) {
  echo $author->getFirstName();
}

1) 这里的"水合作用"是什么意思?
2) 集合和数组的区别是什么?

来源:Propel @1.6

1。Hidration

A意味着通过在你需要的时候用行数据"填充"你的类/对象来提高性能。

不是从一个非常大的表中执行"SELECT * FROM SomeTable",而是首先执行"SELECT ID FROM SomeTable",然后在循环中执行"SELECT [COLUMS] FROM SomeTable WHERE ID=[CurrentID]",因此"On Demand"

2。集合vs数组Array只是普通的数组,而PropelCollection是对象的对象,它有很多可用的东西,比如:

    分页结果
  • 检查奇数或偶数,->isOdd()
  • 检查其中的物品数量$object->count()
  • 格式转换->toYAML(), ->toCSV(), ->toXML()

集合中的每个项都是PropelObject,因此您仍然可以在循环中使用->getColumn()获取数据。文档

相关内容

  • 没有找到相关文章

最新更新