PHP 超全局变量

标签 php mysql database session connection

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

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

当它在一个文件中时一切都很好,但现在我已经将它拆分了,它就不起作用了。我收到所有 undefined index 和 undefined variable 错误。

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

最佳答案

最简单的方法(在大型 PHP 项目中也是不好的方法,因为这会让事情很快变得非常困惑),是使用 $GLOBALS['myvar'] 来设置/获取变量$myvar 在全局范围内的值。或者您可以使用:

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

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

顺便说一句,有更好的方法可以根据上下文使某些内容“随处”可访问。它可能有点超出了这个全局问题的范围,但请注意还有其他方法,例如使用 Singleton 方法(强制在整个软件中使用类的单个实例,使用返回对象的静态类,如MyClass::getInstance())。对于简单的 2/3 文件脚本,这可能并不重要(除非您需要可重用的代码),但对于更复杂的内容,请避免对所有内容使用全局变量。你会省去很多麻烦,代码会更容易维护,你的同事也不会因为使用全局变量而在背后 mock 你。

关于PHP 超全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22749929/

相关文章:

java - Java中如何连接两个ArrayList

mysql - 数据库设计 : how to support multi-lingual site?

php - 如何在不查询整个数据库的情况下检查重复条目?

php - wordpress 上的 Mysql UNION

php - SplObjectStorage - 分离行为

php - 在 mysqli 库中伪造错误条件

mysql - 我只是找不到这个 MySQL "Exists()"错误的合适解决方案

php - 使用 PHP 和 MYSQL 使用 MVC 架构的 CRUD

php - 通过一次查询更新大型数据库

ios - 使用枚举作为 Realm 模型 ios objective-c 的属性