Loops 在While循环中放置include的替代方法

Loops 在While循环中放置include的替代方法,loops,include,while-loop,Loops,Include,While Loop,我有一段PHP代码,我希望将其包含在多个不同的页面上,但可以在一个位置进行更新(因此我使用了一个包含文件)。然而,代码块需要出现在while循环中——特别是在一个呼出MySQL行的while循环中 然而,我正在回传的MySQL查询中大约有200行,因此在循环中包含一个include确实会减慢速度。我尝试将include文件中的内容设置为函数,如下所示,然后在页面顶部包含一次,并在循环中引用该函数,但它似乎不起作用(我只是在设置的变量中没有任何数据,等等) 如何在不使用include的情况下将代码

我有一段PHP代码,我希望将其包含在多个不同的页面上,但可以在一个位置进行更新(因此我使用了一个包含文件)。然而,代码块需要出现在while循环中——特别是在一个呼出MySQL行的while循环中

然而,我正在回传的MySQL查询中大约有200行,因此在循环中包含一个include确实会减慢速度。我尝试将include文件中的内容设置为函数,如下所示,然后在页面顶部包含一次,并在循环中引用该函数,但它似乎不起作用(我只是在设置的变量中没有任何数据,等等)

如何在不使用include的情况下将代码块放入循环中

非常感谢


记住PHP的范围规则。在全局范围中定义的变量在函数中不可见,除非在函数中显式声明为全局变量:

<?php

$x = 7;

function y() {
   echo $x; // undefined
}

function z() {
   global $x;
   echo $x; // 7
}

function a($x) {
   echo $x; // 7
}

非常感谢Marc——所以我假设函数中的每个变量都需要声明为全局变量?即使是MySQL数组中的项(例如$UniverserResult[SalesYear3])?如果您在外部定义的函数中使用变量,那么是的,它应该是全球化的。但不要把一切都全球化,只把必要的全球化,尽量避免全球性的变数。它们有自己的位置,但使用参数来代替。再次感谢Marc——我已经在include函数中全球化了所需的变量,看起来它正在工作——但我认为这比我循环include文件时还要慢。全球化变量会带来巨大的性能损失吗?@Ben Wilson:SalesYear3是变量还是索引?对我来说,它看起来像一个索引,所以你应该把它放在
'
中以将其标记为字符串,例如
$UniverseResult['saleyear3']
-否则它需要一个
$
(按照现在的方式,php将尝试将其用作常量)。您不需要单独传递$UniversalResult的所有部分,它们将作为一个完整的包传递
<?php

$x = 7;

function y() {
   echo $x; // undefined
}

function z() {
   global $x;
   echo $x; // 7
}

function a($x) {
   echo $x; // 7
}