[英]Notice: Undefined property: stdClass error on front end
我无法弄清楚如何定义这条线。 如果有人能提供值得赞赏的帮助,可能是非常简单的事情。
这一行:$ value = $ value->已发布;
继续给我这个错误 - 注意:未定义的属性:stdClass :: $已发布
public static function published($value, $i, $img1 = 'tick.png', $img0 = 'publish_x.png', $prefix = '')
{var_dump($value); die();
if (is_object($value))
{
$value = $value->published;
}
$img = $value ? $img1 : $img0;
$task = $value ? 'unpublish' : 'publish';
$alt = $value ? JText::_('JPUBLISHED') : JText::_('JUNPUBLISHED');
$action = $value ? JText::_('JLIB_HTML_UNPUBLISH_ITEM') : JText::_('JLIB_HTML_PUBLISH_ITEM');
$href = '
<a href="#" onclick="return listItemTask(\'cb' . $i . '\',\'' . $prefix . $task . '\')" title="' . $action . '">'
. JHtml::_('image', 'admin/' . $img, $alt, null, true) . '</a>';
return $href;
}
这些线条没有多大意义:
$value = new stdClass();
$value = $value->published; // attempt to read from an undefined property
你正在创建一个没有属性的干净对象,然后尝试从一个读取 - 因此错误。 这些线路意味着什么?
如果我不得不在黑暗中进行刺杀,请尝试删除$value = new stdClass();
看看现在是否有效。 我想你希望你的published()
函数的第一个参数接受一个布尔值或对象。
尝试使用property_exists()
PHP函数或使用isset($value->published)
:
public static function published($value, $i, $img1 = 'tick.png', $img0 = 'publish_x.png', $prefix = '')
{
if (is_object($value) && property_exists($value,'published'))
{
$val = $value->published;
if(isset($val))
{
$img = $val ? $img1 : $img0;
$task = $val ? 'unpublish' : 'publish';
$alt = $val ? JText::_('JPUBLISHED') : JText::_('JUNPUBLISHED');
$action = $val ? JText::_('JLIB_HTML_UNPUBLISH_ITEM') : JText::_('JLIB_HTML_PUBLISH_ITEM');
$href = '<a href="#" onclick="return listItemTask(\'cb' . $i . '\',\'' . $prefix . $task . '\')" title="' . $action . '">'
. JHtml::_('image', 'admin/' . $img, $alt, null, true) . '</a>';
return $href;
}
}
else {
var_dump($value);
die();
}
}
此外,我还会在比较时将变量名称更改为$val
,以便函数不会以任何方式修改引用的变量。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.