Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/248.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 是否可以使用另一个变量获取$this?_Php_Joomla_Joomla K2 - Fatal编程技术网

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

Php 是否可以使用另一个变量获取$this?,php,joomla,joomla-k2,Php,Joomla,Joomla K2,所以,我是php新手,所以我现在有点困惑 我有一个乔姆拉!具有K2延伸的场地。我有$this->item->imageXLarge内部K2item.php。我需要得到$this->item->imageXLarge位于myitem.php之外,但完全位于同一页面(在当前图像中呈现的模块中) 我真正尝试过的: $k2itemimage=$this->item->imageXLarge-在myitem.php的顶部 echo$k2itemimage-在我的模块内,在我的item.php 这将获得

所以,我是php新手,所以我现在有点困惑

我有一个乔姆拉!具有K2延伸的场地。我有
$this->item->imageXLarge内部K2
item.php
。我需要得到
$this->item->imageXLarge
位于my
item.php
之外,但完全位于同一页面(在当前图像中呈现的模块中)

我真正尝试过的:

  • $k2itemimage=$this->item->imageXLarge
    -在my
    item.php的顶部
  • echo$k2itemimage
    -在我的模块内,在我的
    item.php
这将获得致命错误:当不在对象上下文中时使用$This

您知道如何获取当前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;
            }
        }

在页面顶部写:
$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>');
    }
}

我从未使用过Joomla或K2,但您是否尝试过设置会话?这通常用于将信息从一个php页面传递到另一个php页面。话虽如此,但不确定这是否解决了您的问题,因为它告诉您它不知道对象在哪里。因此,如果您使用的是
$this
,那么您试图在中使用的容器对象是什么?@stewbydoo-Hmm,我正在搜索如何获取会话变量,对于新手来说没有找到任何简单的方法。你能告诉我这个过程吗?我的意思是,设置会话,然后回显/获取变量?能否在问题中添加item.php类?@MikeBrant
item.php
是一个用于呈现前端HTML的文件。我用setDefaultImage类编辑了我的问题。@user3086817好的,那么如果有一个静态函数来检索这个图像,为什么不调用它(例如,
$k2itemimage=classname::setDefaultImage($item,'item',array('itemImgSize'=>'XLarge');
或类似的东西)。我不知道要给出完整答案,
$params
的类名或用法。现在致命错误消失了,但echo是空的html。只要在分配给全局变量时实际设置了$this->item->imageXLarge…?在我的模块中,在my
item.php
之外-首先呈现图像的文件。您可能不想在类中引入全局范围的变量。这是糟糕的编程实践。如果OP可以将类信息添加到问题中,则可以就如何获取该值给出更好的建议。不,不,请不要引入全局范围的变量。我不知道k2方法,但您要做的是从您在变量中创建的JInput对象中获取id,然后可能使用静态方法执行此操作$这与您的模块和文章中的内容不同。
die_var($this->item->imageXLarge,true);