2

我有一个返回数组的函数。之后,我创建了另一个函数,第一个函数是什么。这工作正常,我用 测试过var_dump(),但是当我在其他页面中调用第二个函数时,我NULL回来了吗?这是我的代码:

第一个功能

function get_blogs()
{
  global $kapcsolat;
  $sql = "SELECT * FROM blog WHERE b_aktiv ='1' ORDER BY b_datum DESC";
  if($eredmeny = mysqli_query($kapcsolat,$sql))
  {
    if($db = mysqli_num_rows($eredmeny)>0)
    {
      while($sor = mysqli_fetch_assoc($eredmeny))
      {
        $tomb[] = $sor;
      }
      mysqli_free_result($eredmeny);
      return $tomb;  
    }
    else
    {
      $tomb[] = null;
      return $tomb;
    }
  }
  else
  {
    echo'nem sikerült csatlakozni';
  }
}

这里是第二个

function public_blog()
{
  $blogok = get_blogs();
}

这是我如何包含第二个函数的代码:

include 'admin/functions.php';
public_blog();

但是当我调用 public_blog 时,我不能使用 $blogok 变量。我的意思是归还NULL。为什么?

4

2 回答 2

3

您的第二个函数既不返回任何内容,也不设置全局变量的值(并且$blogok对于创建它的函数是本地的),因此它实际上是无用的。也许你的意思是:

function public_blog()
{
  return get_blogs();
}

... 
$blogok = public_blog();
doSomethingElseWith($blogok);

尽管如此,我认为该中间函数没有什么意义,除非你打算用它的结果做一些事情get_blogs()

作为旁注,这样做的目的是什么?

$tomb[] = null;
return $tomb;

这里从函数返回一个单元素数组(如果没有找到行)。但是这个结果不被认为是空的,并且可能会在你的代码的其他部分引入错误。最好将其替换为$tomb = array();$tomb = null,具体取决于它的使用方式。

于 2013-06-01T10:36:30.947 回答
0

您的第一个功能是将return一些数据输入到第二个功能。

在您的第二个函数中,您只是将第一个函数返回的数据分配给一个变量,没有其他任何事情发生。

所以你需要的是另一个return声明:

function public_blog()
{
  $blogok = get_blogs();
  return $blogok;
}
于 2013-06-01T10:37:25.223 回答