是否可以使用另一个变量获得$ this?

时间:2014-01-06 16:51:11

标签: php joomla joomla-k2

所以,我是php的新手,所以我觉得现在感到困惑。

我有一个joomla! K2扩展的网站。我在K2 $this->item->imageXLarge;内有item.php。我需要在$this->item->imageXLarge;之外获取item.php,但要在同一页面中(在当前图像中呈现的模块中)。

我真正尝试过的内容:

  • $k2itemimage = $this->item->imageXLarge; - 位于item.php
  • 的顶部
  • echo $k2itemimage - 在我的模块中,在item.php
  • 之外

这会得到 Fatal error: Using $this when not in object context

我怎么知道当前imageXLarge的$this变量?

编辑 - > setDefaultImage类

public static function setDefaultImage(&$item, $view, $params = NULL)
    {
        if ($view == 'item')
        {
            $image = 'image'.$item->params->get('itemImgSize');
            $item->image = $item->$image;

            switch ($item->params->get('itemImgSize'))
            {

                case 'XSmall' :
                    $item->imageWidth = $item->params->get('itemImageXS');
                    break;

                case 'Small' :
                    $item->imageWidth = $item->params->get('itemImageS');
                    break;

                case 'Medium' :
                    $item->imageWidth = $item->params->get('itemImageM');
                    break;

                case 'Large' :
                    $item->imageWidth = $item->params->get('itemImageL');
                    break;

                case 'XLarge' :
                    $item->imageWidth = $item->params->get('itemImageXL');
                    return $k2itemimage = $item->params->get('itemImageXL');
                    break;
            }
        }

1 个答案:

答案 0 :(得分:-1)

在页面顶部写上:$k2itemimage = null;

然后当你想在你的对象中设置这个变量时,只需写:

global $k2itemimage;
$k2itemimage = $this->item->imageXLarge;

这是一个检查变量是否包含任何内容的函数:

function die_var($data, $informativeButNotPretty=False) {
    if($informativeButNotPretty) {
        echo '<pre>';
        var_dump($data);
        die('</pre>');
    }
    else {
        die('<pre>'.print_r($data,true).'</pre>');
    }
}

把它放在脚本的顶部,无论你在哪里尝试分配全局变量,只需将其放在上面一行:

die_var($this->item->imageXLarge,true);