PHP中的函数问题

时间:2013-07-08 21:53:48

标签: php function return

我搜索并搜索过,无法找到我的问题的任何答案所以如果这是一个转贴新手,我很抱歉。

我在一个名为functions.php的单独文件中有这个功能

function get_all_posts(){
global $connection;
$q = "SELECT * FROM blog LIMIT 1";
$get_posts = mysqli_query($connection, $q);
if (!$get_posts){
    die ('Query failed.');
}
return $get_posts;
}

在blog.php中调用函数

<div class="group">
        <?php get_all_posts();
            while ($row = mysqli_fetch_array($get_posts)){
         ?>
         <h1><?php echo $row['title']; ?></h1>
         <?php } ?>
        </form>
    </div>

但我一直有一个未定义的变量$get_posts

4 个答案:

答案 0 :(得分:1)

您不捕获返回的值。例如你应该

$get_posts = get_all_posts();

如果未将函数的返回值赋给变量,则抛弃该返回值。所以你的查询基本没用。

答案 1 :(得分:1)

您必须将get_all_posts的结果分配给$ get_posts;

<?php $get_posts = get_all_posts(); 
while ($row = mysqli_fetch_array($get_posts)){
     ?>
     <h1><?php echo $row['title']; ?></h1>
     <?php } ?>
    </form>
</div>

答案 2 :(得分:0)

将blog.php中的代码更改为以下内容:

<div class="group">
    <?php 
        $get_posts = get_all_posts();
        while ($row = mysqli_fetch_array($get_posts))
        {
     ?>
     <h1><?php echo $row['title']; ?></h1>
     <?php 
        }
     ?>
    </form>
</div>

您的函数返回一个值,但它不会直接传递它。你必须在$newvariable = function();之类的变量中捕获它,然后你可以在任何你想要的地方使用$ newvariable。

答案 3 :(得分:0)

当然!为了不获取未定义的变量,在mysqli_fetch_array()函数中使用它之前,必须为变量赋值,在这种情况下为$ get_posts。代码 Orangepill 建议肯定会有效。