我在网上搜索过,或者我看不到它。
我想做以下事情:
<?php
function abc(){
$sql = "SELECT * FROM table";
$result = mysql_fetch_assoc($sql);
$data = mysql_fetch_assoc($result);
}
?>
<? while(abc()) : ?>
<?=article_title()?>
<?=article_content()?>
<?=endwhile;?>
有人可以给我一个指示和/或示例吗?
非常感谢
答案 0 :(得分:2)
PHP没有生成器/迭代器函数,所以你不能这样做。
但是,您可以返回一个数组并遍历该数组:
function abc() {
// ...
$rows = array();
while($row = mysql_fetch_assoc($result)) { $rows[] = $row; }
return $rows;
}
foreach(abc() as $row) {
// do something
}
如果您调用的函数需要访问该行,请将其作为参数传递。使用全局变量将是非常糟糕/讨厌
答案 1 :(得分:1)
你有没有试过这样的事情?
<?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);
}