在一个文件中我有这样的东西:
$result = mysqli_query($con, "SELECT * FROM users WHERE id_province = '".$province_id."' AND id_city = '".$city_id."' AND age >= '".$age1."' AND
age <= '".$age2."' AND id_rank = '".$rank_id."' AND id_position = '".$position_id."';");
while ($row = mysql_fetch_array($result)) {
$array[] = $row;
}
我想在另一个php文件中使用$array
。我该怎么办?
答案 0 :(得分:3)
您可以使用SESSIONS
session_start();
$result = mysqli_query($con, "SELECT * FROM users WHERE id_province = '" . $province_id . "' AND id_city = '" . $city_id . "' AND age >= '" . $age1 . "' AND
age <= '" . $age2 . "' AND id_rank = '" . $rank_id . "' AND id_position = '" . $position_id . "';");
while ($row = mysql_fetch_array($result)) {
$array[] = $row;
}
$_SESSION['array'] = $array;
在第二个文件中,您可以使用以下代码
@session_start();
$array = $_SESSION['array'];
答案 1 :(得分:1)
所以......&#34;出口&#34;这是错误的术语,你所看到的是变量范围
用最简单的术语 - 在函数外声明的东西是&#34;全局&#34;在函数中声明的内容对于
是私有的您想将数组从一个文件传递到另一个文件吗?如果你有3个文件(main,include_num1和include_num2),这很简单;
主;
<?php
require_once 'include_num1.php';
require_once 'include_num2.php';
?>
include_num1;
<?php
$myarray = array("a", "b", "c")
?>
include_num2;
<?php
var_dump($myarray);
?>
这会产生类似的东西;
myarray = (array)
string 0 : a(1)
string 1 : b(1)
string 2 : c(1)
这是因为在这个例子中,数组是在全局范围内声明的,如果你反过来做了require - 这会在var转储时出错,$ myarray不存在< / p>
你可以跳过&#34; main&#34;只需加入include_num2
include_num1
即可
如果要在函数内使用全局变量,请将该函数声明为正常,并使用可用的global
;
<?php
$myvar = "A variable";
function myFunction()
{
if (isset($myvar)) print $myvar; // Will do nothing
global $myvar;
if (isset($myvar)) print $myvar; // Will Print "A variable"
}
?>
答案 2 :(得分:1)
尝试在多个文件之间传递时,可以使用类而不是脚本。这有助于更好地维护代码。
假设第二个文件是SecondFile.class。我可以实例化它,然后将数组作为参数传递。
$secondFile = new SecondFile;
$secondFile->someClassMethod($array);
或者,如果您不需要使用第二个文件,请使用更短的语法:
(new SecondFile)->someClassMethod($array);
答案 3 :(得分:0)
您可以将数组保存在数据库,文件,cookie,会话....
这取决于您想要做什么与必要的安全级别。
最简单的方法是:
//At the top of your page
@session_start();
//This line goes after you get all data you want inside your array
$_SESSION['mySession'] = $array;
在另一页:
//At the top of your page
@session_start();
//To recover you array:
$array = $_SESSION['mySession'];
不是最好的选择,但它有效。