我在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
正在运行。
但是,如果我在外部循环中使用此变量,则不显示数据。
答案 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'];
}