如何在php中创建变量全局外部foreach循环?

时间:2018-03-21 09:31:36

标签: php variables foreach global

我在foreach循环中从表中获取数据。现在我试图在每个循环中使用变量外部但它不起作用。

public function get_all_folders()
            {
                $con = $this->__construct();
                $sql="select * from documents";                
                $execute = mysqli_query($con, $sql);
                $rows = mysqli_num_rows($execute);
                $data = [];
                while ($result = $execute->fetch_assoc()) {
                    $data[] = $result;
                }
                return $data;
            }

以上是我在另一页上获取数据的功能。

 $folder = $obj->get_all_folders();        
        foreach ($folder as  $folder_data) 
            {

                $existing_directory = $folder_data['root_dir'];
            }

在另一个页面上,我在页面顶部调用我的函数。在foreach循环中,我的变量$existing_directory正在运行。 但是,如果我在外部循环中使用此变量,则不显示数据。

3 个答案:

答案 0 :(得分:1)

如果您想在外部访问变量,则需要在外部循环中定义变量。

$folder = $obj->get_all_folders();        
$existing_directory = null;
foreach ($folder as  $folder_data) 
{
   $existing_directory = $folder_data['root_dir'];
}

根据您的代码,您将从数组中获取最后一条记录 所以你也可以尝试下面的代码

$folder = $obj->get_all_folders();        
$last_record = end($folder);
$existing_directory = $last_record['root_dir'];

答案 1 :(得分:0)

在第二页中,首先,包括如下第一页:

include_once 'file1.php';    // whatever your filename

其次,在第二个文件中创建类的对象(第一个文件中的类),如下所示:

$obj = new className();          // whatever classname you have provided in file1

如果仍然不起作用,请在第二页的foreach语句之前写下面的语句:

print_r($folder);exit;

如果没有显示,则表示没有数据,因此foreach不会显示任何内容。

答案 2 :(得分:0)

这样做。在foreach循环中,您将值赋给$ existing_directory使其成为$ existing_directory [],否则它将覆盖以前的变量。

$existing_directory = array();
$folder = $obj->get_all_folders();        
  foreach ($folder as  $folder_data) 
    {
      $existing_directory[] = $folder_data['root_dir'];
    }