PHP功能在一段时间循环

问题描述:

我在网上搜索或我只是没有看到它。PHP功能在一段时间循环

我要做到以下几点:

<?php 

function abc(){ 
    $sql = "SELECT * FROM table"; 
    $result = mysql_fetch_assoc($sql); 
    $data = mysql_fetch_assoc($result); 
} 

?> 

<? while(abc()) : ?> 

    <?=article_title()?> 
    <?=article_content()?> 

<?=endwhile;?> 

可能有人给我一个方向和/或例子吗?

非常感谢您

+2

笏你想达到吗?当你完成后,对结果执行mysql_free_result()的函数 – 2012-04-23 17:58:22

+0

。 – craniumonempty 2012-04-23 18:00:06

+0

像他们使用的wordpress,while(function()):,endwhile ;.我想做出类似的东西,它使模板设计变得更容易 – rayrule 2012-04-23 18:03:01

你试过做这样的事情吗?

<?php 
function getData(){ 
    //get the data from the database 
    //return an array where each component is an element found 
} 

$elems = getData(); 
foreach($elems as $e){ 
    doSomethingWith($e); 
} 

PHP没有发电机/迭代器的功能,所以你不能做到这一点。

但是,您可以返回一个数组和遍历数组:

function abc() { 
    // ... 
    $rows = array(); 
    while($row = mysql_fetch_assoc($result)) { $rows[] = $row; } 
    return $rows; 
} 

foreach(abc() as $row) { 
    // do something 
} 

如果调用需要访问该行的功能,把它作为一个参数。使用它的全局变量将是非常糟糕/讨厌

+0

这就是为什么我说迭代器*函数*。在python中,你可以使用'yield'关键字来完成OP想要的内容 - 这在PHP中不存在。 – ThiefMaster 2012-04-23 17:56:40