ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

PHP中的全局变量与静态变量

2019-10-07 16:37:56  阅读:167  来源: 互联网

标签:php global-variables static


我正在用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'];

解决方法:

全局变量和公共静态变量之间确实没有区别.类变量的命名空间稍微好一点,但这几乎没有任何区别.两者都可以随时随地访问,并且都是全球状态.

碰巧,我刚刚写了一篇关于这个主题的详尽文章:
How Not To Kill Your Testability Using Statics

标签:php,global-variables,static
来源: https://codeday.me/bug/20191007/1868154.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有