PHP超全局变量

时间:2014-03-30 21:11:00

标签: php mysql database session connection

我试图让一个PHP脚本调用几个函数,这些函数应该对几个变量进行一些操作。

例如,有一个函数获取矩阵,第二个是对它执行一个操作,然后第三个对它执行不同的操作。

当它在一个文件中时,一切都运行良好,但是现在我把它分开了,它不会起作用。我得到所有未定义的索引和未定义的变量错误。

我应该如何处理变量,以便他们在整个脚本中保留其值?

2 个答案:

答案 0 :(得分:0)

最简单的方法(以及较大的PHP项目中的错误方法,因为这会使事情变得非常混乱),要么使用$GLOBALS['myvar']在全局范围内设置/获取$ myvar的变量值。或者您可以使用:

<?php
global $myvar;
//use the $myvar below...

在任何地方使用它,包括在函数内部或在新文件中,在全局范围内使用$ myvar。

另一方面,有更好的方法可以使某些东西可以访问&#34;无处不在&#34;取决于具体情况。这可能有点超出了这个全局问题的范围,但是请注意还有其他方法,例如使用 Singleton方法(强制执行整个软件中使用的类的单个实例,使用返回对象的静态类,如MyClass::getInstance())。对于一个简单的2/3文件脚本,这可能并不重要(除非你需要可重用的代码),但对于任何更复杂的东西,避免使用全局变量。您将节省很多头痛,代码将更容易维护,并且您的同行不会因为使用全局变量而在您背后嗤之以鼻。

答案 1 :(得分:0)

您使用过require_once('file2.php'),第三个文件是否相同?假设您正在运行第一个文件。

将功能拆分为单独的文件需要包含这些文件,就好像它们都在一个文件中一样。确保你做到了。