Php 是否可以使用另一个变量获取$this?
所以,我是php新手,所以我现在有点困惑 我有一个乔姆拉!具有K2延伸的场地。我有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 这将获得
$this->item->imageXLarge代码>内部K2item.php
。我需要得到$this->item->imageXLarge
位于myitem.php
之外,但完全位于同一页面(在当前图像中呈现的模块中)
我真正尝试过的:
$k2itemimage=$this->item->imageXLarge
-在myitem.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类?@MikeBrantitem.php
是一个用于呈现前端HTML的文件。我用setDefaultImage类编辑了我的问题。@user3086817好的,那么如果有一个静态函数来检索这个图像,为什么不调用它(例如,$k2itemimage=classname::setDefaultImage($item,'item',array('itemImgSize'=>'XLarge');
或类似的东西)。我不知道要给出完整答案,$params
的类名或用法。现在致命错误消失了,但echo是空的html。只要在分配给全局变量时实际设置了$this->item->imageXLarge…?在我的模块中,在myitem.php
之外-首先呈现图像的文件。您可能不想在类中引入全局范围的变量。这是糟糕的编程实践。如果OP可以将类信息添加到问题中,则可以就如何获取该值给出更好的建议。不,不,请不要引入全局范围的变量。我不知道k2方法,但您要做的是从您在变量中创建的JInput对象中获取id,然后可能使用静态方法执行此操作$这与您的模块和文章中的内容不同。
die_var($this->item->imageXLarge,true);