我有一大堆PHP代码,我想要包含在许多不同的页面上,但能够在一个位置更新(因此我使用了包含文件)。但是,代码块需要出现在while循环中 - 特别是在回显MySQL行的while循环中。
然而,我正在回应的MySQL查询中大约有200行,因此在循环中使用包含确实会减慢速度。我已经尝试在include文件中创建一个函数,如下所示,然后包括一次在页面顶部并引用循环内的函数,但它似乎不起作用(我只是没有得到)我正在设置的变量中的任何数据等。)
如何在不使用include的情况下将一大块代码放入循环中?
非常感谢。
function CYCalc()
{
// If the company's current fiscal quarter
// is equal to the current calendar quarter,
// use the company's fiscal years as calendar years
if ($UniverseResult[CurQ] == "Q1" && $UniverseResult[CurYear] == "2012") {
$C2011Sales = number_format($UniverseResult[SalesYear2]/1000000,1);
$C2012Sales = number_format($UniverseResult[SalesYear3]/1000000,1);
$C2011EPS = $UniverseResult[EPSYear2];
$C2012EPS = $UniverseResult[EPSYear3];
}
}
答案 0 :(得分:1)
记住PHP的范围规则。除非在函数中明确声明它们为全局变量,否则全局范围中定义的变量在函数内部不可见:
<?php
$x = 7;
function y() {
echo $x; // undefined
}
function z() {
global $x;
echo $x; // 7
}
function a($x) {
echo $x; // 7
}
要使CYCalc()正常工作,您需要根据上面的$UniverseResult
声明z()
全局,或者根据上面的a()
将其作为参数传递。