我有两个不同的.php文件,第一个名为get_data.php
,看起来像这样:
<?php
...
$current_date = date("Y-m-d H:i:s");
$total_sales = 35;
$total_revenue = 12;
$this_month_sales = 3;
$this_month_revenue = 7;
$last_month_sales = 2;
$last_month_revenue = 5;
...
?>
现在,我正在使用的第二个文件名为index.php
,位于index.php
的顶部,我的任何HTML之前都有以下代码
<?php include_once 'get_data.php'; ?>
现在,只需输入变量名称,我就可以从get_data.php
内部引用index.php
的值,这可行。
但是,我在function()
内有一个index.php
,我用来检查值并将百分比作为字符串返回
此功能如下所示:
function compareMonths($checkingRevenue) {
global $this_month_revenue;
global $this_month_sales;
global $last_month_revenue;
global $last_month_sales;
...
}
但是,对于所有四个变量,此函数返回“0”。我试过不把它们设置为全局的。如何从get_data.php
中获取值在index.php中的函数范围内?
我的解决方案就是将函数放在get_data.php中,但我想知道如何正确设置范围,以便将来可以做这样的事情。
这让我感到困惑,因为include_once的文档说明了
当包含文件时,它包含的代码将继承&gt;中行的变量范围。包含发生的内容。调用文件中该行可用的任何变量都将>从那时起,在被调用文件中可用。但是,所有功能和>包含文件中定义的类具有全局范围。
这意味着它应该是可访问的,不是吗?
答案 0 :(得分:0)
假设
global $this_month_revenue;
global $this_month_sales;
global $last_month_revenue;
global $last_month_sales;
是调用它时要传递给函数的变量。例如:
compareMonths($checkingRevenue, $this_month_revenue, $this_month_sales);
function compareMonths($checkingRevenue, $val1, $val2) {}