如何在 php 中的 foreach 循环外使变量成为全局变量?
How to make variable global outside foreach loop in php?
我正在 foreach 循环中从 table 获取数据。现在我正在尝试为每个循环使用外部变量,但它不起作用。
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'];
}
在另一个页面上,我在我的 page.Inside foreach 循环顶部调用我的函数,我的变量 $existing_directory
正在工作。
但是如果我在循环外使用这个变量它不会显示数据。
在第二页中,首先包含如下第一页:
include_once 'file1.php'; // whatever your filename
其次,在第二个文件中创建class对象(第一个文件中的class),如下所示:
$obj = new className(); // whatever classname you have provided in file1
如果还是不行,那么在第二页的foreach语句之前写下下面的语句:
print_r($folder);exit;
如果没有显示,则表示没有数据,因此foreach不会显示任何内容。
如果你也想在外部访问它,你需要在循环外定义变量。
$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'];
做成这样。在 foreach 循环中,您将值赋给 $existing_directory 使其成为 $existing_directory[] 否则它将覆盖先前的变量。
$existing_directory = array();
$folder = $obj->get_all_folders();
foreach ($folder as $folder_data)
{
$existing_directory[] = $folder_data['root_dir'];
}
我正在 foreach 循环中从 table 获取数据。现在我正在尝试为每个循环使用外部变量,但它不起作用。
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'];
}
在另一个页面上,我在我的 page.Inside foreach 循环顶部调用我的函数,我的变量 $existing_directory
正在工作。
但是如果我在循环外使用这个变量它不会显示数据。
在第二页中,首先包含如下第一页:
include_once 'file1.php'; // whatever your filename
其次,在第二个文件中创建class对象(第一个文件中的class),如下所示:
$obj = new className(); // whatever classname you have provided in file1
如果还是不行,那么在第二页的foreach语句之前写下下面的语句:
print_r($folder);exit;
如果没有显示,则表示没有数据,因此foreach不会显示任何内容。
如果你也想在外部访问它,你需要在循环外定义变量。
$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'];
做成这样。在 foreach 循环中,您将值赋给 $existing_directory 使其成为 $existing_directory[] 否则它将覆盖先前的变量。
$existing_directory = array();
$folder = $obj->get_all_folders();
foreach ($folder as $folder_data)
{
$existing_directory[] = $folder_data['root_dir'];
}