Php OpenCart:如何生成全局变量?

Php OpenCart:如何生成全局变量?,php,variables,opencart,Php,Variables,Opencart,我试图在OpenCart中创建两个全局变量。我基本上希望能够在我的.tpl文件中声明它们 <?php echo $global1; ?> 更新 /catalog/controller/common/header.php <?php class ControllerCommonHeader extends Controller { protected function index() { // NEW GLOBAL VARS

我试图在OpenCart中创建两个全局变量。我基本上希望能够在我的
.tpl
文件中声明它们

<?php echo $global1; ?>
更新 /catalog/controller/common/header.php

<?php   
class ControllerCommonHeader extends Controller {


    protected function index() {

        // NEW GLOBAL VARS
        $cdnDefault="//www.gorgeouscouturedev.com/catalog/view/theme/";
        $currentUseLang = $this->language->get('code'); 
<?php   
class ControllerCommonHeader extends Controller {


    protected function index() {

        // NEW GLOBAL VARS
     $GLOBALS["cdnDefault"]="//www.gorgeouscouturedev.com/catalog/view/theme/";
     $GLOBALS["currentUseLang"] = $this->language->get('code');

如果您只是想使用一个静态值,您可以使用一个常量。只需在config.php文件中创建一个,如

然后您可以使用

<?php echo CDN_URL; ?>

应用程序中的任何位置。如果您想像在编辑的问题中那样对其进行编码,那么代码的基本缺陷是您在控制器文件中使用了
$cdnDefault
而不是
$this->data['cdnDefault']
,从而导致了未定义的问题。但是请注意,这个变量一点也不是全局变量,它只是按照应该的方式进行编码


我认为,正确的方法是创建一个新的设置值,供您在管理区域的
SYSTEM>SETTINGS
中编辑,然后使用
$this->config->get('config_value_here')调用它
您可以使用
$GLOBALS
超级全局数组,而不是采用被认为更快速的黑客攻击方法

例如,首先在
controller/common/header.php

$GLOBALS["1"] = "test";
然后在任何tpl文件中使用它,如

<?php echo $GLOBALS["1"]; ?>
更新问题的答案

/catalog/controller/common/header.php

<?php   
class ControllerCommonHeader extends Controller {


    protected function index() {

        // NEW GLOBAL VARS
        $cdnDefault="//www.gorgeouscouturedev.com/catalog/view/theme/";
        $currentUseLang = $this->language->get('code'); 
<?php   
class ControllerCommonHeader extends Controller {


    protected function index() {

        // NEW GLOBAL VARS
     $GLOBALS["cdnDefault"]="//www.gorgeouscouturedev.com/catalog/view/theme/";
     $GLOBALS["currentUseLang"] = $this->language->get('code');


您可以使用$\u会话变量我也考虑过这一点,但我将如何实现它。当我仅仅使用非会话变量时,我对使用
SESSION
变量没有信心。我不想为此开个会。杰,谢谢你的回复。我明确提到我不想使用会话,它将始终是一个静态变量,它是CDN URL,因此不是用户驱动的。你能告诉我我将把会话放在哪里(供将来使用)以及你对字符串的建议吗?我将如何添加新的系统设置值?你的意思是为管理面板构建一个插件,然后是?使用vQmod生成一个额外的字段,并将必要的控制器代码等放在设置位置。我不打算详细说明具体是如何实现的,这是一种很容易从代码本身获取信息的方法,我相信web上已经有了一些示例
<?php echo $GLOBALS["1"]; ?>
$this->children = array(
            'common/column_left',
            'common/column_right',
            'common/content_top',
            'common/content_bottom',
            'common/footer',
            'common/header'     
        );
<?php   
class ControllerCommonHeader extends Controller {


    protected function index() {

        // NEW GLOBAL VARS
     $GLOBALS["cdnDefault"]="//www.gorgeouscouturedev.com/catalog/view/theme/";
     $GLOBALS["currentUseLang"] = $this->language->get('code');
<?=$header?>
<?=$column_left?>
<?=$column_right?>
<div id="content">

<? echo $GLOBALS["cdnDefault"]; ?>
<? echo $GLOBALS["currentUseLang"]; ?>

    <?=$content_top?>
        <div class="flexslider">
            <ul class="slides">
                <li><img src="catalog/view/theme/default/image/desktop.png"/></li>
                <li><img src="catalog/view/theme/default/image/blogger.png"/></li>
            </ul>
        </div>
    <?=$content_bottom?>
</div>
<?=$footer?>