将包含放在While循环中的替代方法

时间:2012-01-06 14:14:32

标签: loops include while-loop

我有一大堆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];
  }
}

1 个答案:

答案 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()将其作为参数传递。