Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 而变量_Php_While Loop - Fatal编程技术网

Php 而变量

Php 而变量,php,while-loop,Php,While Loop,我试着用函数中的变量来做一段时间 这是我的清单页面代码,它可以工作 $pages_table = $connect->prepare('SELECT * FROM pages'); $pages_table->execute(); while($pages_list = $pages_table->fetch(PDO::FETCH_ASSOC)) { echo $pages_list['name']; } 但是我想要这个,但它不起作用 function page_l

我试着用函数中的变量来做一段时间

这是我的清单页面代码,它可以工作

$pages_table = $connect->prepare('SELECT * FROM pages');
$pages_table->execute();

while($pages_list = $pages_table->fetch(PDO::FETCH_ASSOC)) {
    echo $pages_list['name'];
}
但是我想要这个,但它不起作用

function page_list() {
    global $connect;
    $pages_table = $connect->prepare('SELECT * FROM pages');
    $pages_table->execute();
    return $pages_list = $pages_table->fetch(PDO::FETCH_ASSOC);
}
while (page_list()) {
    echo $pages_list['name'];
}

您能帮我吗?

这是因为每次调用page\u list时,您都在执行一个新的查询

你可以:

返回语句:

function page_list() {
    global $connect;
    $pages_table = $connect->prepare('SELECT * FROM pages');
    $pages_table->execute();
    return $pages_table ;
}

$pages_table = page_list();
while ($pages_list = $pages_table->fetch(PDO::FETCH_ASSOC)) {
    echo $pages_list['name'];
}
或使用和foreach:

或与PHP 5.5一起使用:

function page_list() {
    global $connect;
    $pages_table = $connect->prepare('SELECT * FROM pages');
    $pages_table->execute();
    while($row = $pages_table->fetch(PDO::FETCH_ASSOC)) { yield $row; }
}

foreach (page_list() as $pages_list) {
    echo $pages_list['name'];
}

你说它不起作用是什么意思?另外,为什么在函数中返回变量之前要将值赋给变量?
function page_list() {
    global $connect;
    $pages_table = $connect->prepare('SELECT * FROM pages');
    $pages_table->execute();
    while($row = $pages_table->fetch(PDO::FETCH_ASSOC)) { yield $row; }
}

foreach (page_list() as $pages_list) {
    echo $pages_list['name'];
}