我正在用PHP创建一个基本框架.我需要将当前页面的数据传递到不同的函数,允许它们修改并保存,然后将其传递回要显示的页面.我原本计划将数据存储在像$GLOBALS [‘data’]这样的全局变量中,但我开始认为使用全局变量是一个坏主意.所以我想我会在系统类中放置一个静态变量,并使用system :: $data访问它.所以,我的问题是,哪个更好,为什么?
这个:
$GLOBALS['data'] = array();
$GLOBALS['data']['page_title'] = 'Home';
echo $GLOBALS['data']['page_title'];
或这个:
class system
{
public static $data = array()
}
function data($new_var)
{
system::$data = array_merge(system::$data, $new_var);
}
data(array('page_title' => 'Home'));
echo system::$data['page_title'];
解决方法:
全局变量和公共静态变量之间确实没有区别.类变量的命名空间稍微好一点,但这几乎没有任何区别.两者都可以随时随地访问,并且都是全球状态.
标签:php,global-variables,static
来源: https://codeday.me/bug/20191007/1868154.html