require_once('Class.php');
$myArray = array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); // etc
哪个是对的?
foreach($myArray as $key => $val) {
$class = new Class();
$result = $class->someMethod($val);
}
或
$class = new Class();
foreach($myArray as $key => $val) {
$result = $class->someMethod($val);
}
使用http://simplepie.org/wiki/reference/simplepie/get_items
编辑更具体$aFeeds = array(rssFeed1,rssFeed2,rssFeed3,...);
foreach($aFeeds as $key => $feedURL) {
$feed->set_feed_url(feedURL);
$feed->init();
$feed->get_items(0, 5);
}
答案 0 :(得分:5)
简答:取决于。
长答案:如果重复实例化不更改执行结果,则只在循环外创建一次类。
如果重复实例化确实改变了执行的结果,那么在循环内创建类实例就是合适的实现。
其中哪一项是真的,完全取决于你的班级写作方式。我愿意打赌你不需要每次迭代都重新实例化这个类,但这纯粹是推测性的。
答案 1 :(得分:1)
没有正确的,在任何一种情况下都不会出错。我认为它们在功能上是等价的,因为Class
似乎没有状态。
答案 2 :(得分:1)
除非我看到someMethod
做了什么,否则我无法说出来。如果它是纯功能的,那么第二个样本可能更快。如果它以某种方式影响班级成员,则两者可能会导致不同的结果。但是,这些都不是“错误的”。
答案 3 :(得分:1)
很可能是第二个。但这取决于你究竟想要做什么。
如果你想每次在对象的同一个实例上调用someMethod
(这是可能的情况),那么第二种方法是正确的。如果每次都是相同的实例并不重要,第二种方法也是优选的。
只有在每次使用第一种方法时,都希望在不同的实例上调用它。
答案 4 :(得分:0)
后者 - 它将提高性能,因为类只被实例化一次。就国家而言(参见其他答案),只需尝试两者并比较结果。