鍍金池/ 問(wèn)答/PHP/ PHP MVC框架里如何使用$GLOBALS

PHP MVC框架里如何使用$GLOBALS

直接看網(wǎng)上的代碼(代碼正確的):
圖片描述

但是這段代碼要放到mvc框架里面,應(yīng)該如何使用,我寫了如下代碼(以ci框架為例):

class Welcome extends CI_Controller
{
    public $name = 'TOM';
    public function index()
    {
        echo "myname is " . $GLOBALS['name'] . "<br>";
    }
}

結(jié)果報(bào)錯(cuò):Undefined index: name

平常開(kāi)發(fā)mvc框架一定要和類打交道的,不像圖片里的這么簡(jiǎn)單,在類里面應(yīng)該如何使用$GLOBALS????
回答
編輯回答
呆萌傻

我也在使用CI也就是CodeIgniter開(kāi)發(fā)時(shí)遇到相關(guān)問(wèn)題,但是我沒(méi)有用全局變量的方式去解決,我個(gè)人也是不提倡在MVC框架里面使用全局變量,全局變量容易被代碼的各個(gè)部分訪問(wèn)和修改,產(chǎn)生太多的不確定性,而且變量一般封裝在類當(dāng)中,不應(yīng)該在類外被訪問(wèn)

1、將你需要的全局變量以配置變量的方式寫入config.php中

$config['name']= 'TOM';

2、在需要引用該變量時(shí)

$name = $this->config->item('name');
echo $name;
// Tom

以上方法參考CI的配置類,這個(gè)方法使用方便,而且全局生效,但是缺點(diǎn)也就是如果你需要設(shè)置非常多的變量,或者是從數(shù)據(jù)庫(kù)讀取的變量,那么這個(gè)方法就行不通

2017年12月7日 18:29