2011-11-01 156 views
0

变量的作用域这里是我的情况:麻烦与PHP

我正在使用我写了与外部XML文档工作几个功能的PHP项目。我想要做的是将相同的functions.php文件导入许多不同的页面,这些页面都使用相同的代码。问题是xml文件的路径并不总是相同的,而且通常依赖于当前显示的视图。

我所试图做的是基本上以前我include 'path-to-functions.php';宣布在我看来一个$source = 'path-relative-to-view';,然后具备的功能访问的必要$源变量时。通过这种方式,我不必为每个不同的目录重写函数。

我认为这是可能的,但不幸的是,我还没有足够使用PHP知道。

+0

对不起,如果我误解。你所说的是你的函数足够通用,但你有一个硬编码的$源? –

回答

1

您将不得不在每个将使用它的函数中声明$source全局。

function abc 
{ 
    global $source; 
    //--use $source 
} 
+0

通常不建议 – 2011-11-01 04:20:49

+0

即使不推荐,它肯定是我应该知道如何使用的东西。我很难理解如何使用它的文档,但我想我只需要你一句话!谢谢! –

2

你可以使用全局变量 - 但不要,全局变量不好。

只需重写函数以将文件路径作为其参数之一。

你可以做的另一件事是将它们分组在一个类中。然后使用该类的成员变量来存储他们将能够访问的路径。

+0

这正是我要采用的路径:首先,编写方法签名以包含参数,然后,如果需要的话,将其分类。没有通过方法sig重写并直接将它分类是很好的,因为它消除了重复地将源作为参数传递的需要。这只是创建,设置和开始射击funcs。 – abelito

+0

请问为什么全局变量如此糟糕? –

+1

http://blog.lukemorton.co.uk/post/1442685644/global-variables-bad – 2011-11-01 04:26:24