严格标准:Joomla 中的非静态方法错误

Posted

技术标签:

【中文标题】严格标准:Joomla 中的非静态方法错误【英文标题】:Strict Standards: Non-static method Error in Joomla 【发布时间】:2016-12-16 15:14:00 【问题描述】:

我开发了一个 Joomla 组件。在管理员部分中,我使用helper/select.php 文件显示动态类别。但是我收到了这个错误:

严格标准:不应静态调用非静态方法 TrueMatrimonyHelperSelect::getProfileforlist(),假设 $this 来自不兼容的上下文

XML 代码:

<field name="createby" type="list" id="createby"     	               
    source_file="admin://components/com_astrimony/helpers/select.php"
    source_class="TrueMatrimonyHelperSelect" source_method="getProfileforlist"
    sortable="true" td show_link="true" url="index.php?option=astrimony&amp;view=profile&amp;id=[ITEM:ID]"
    label="COM_MATRIMONY_REGISTER_FOR"	
/>

选择文件代码

public function getProfileforlist($name='', $attr=array(), $selected_value='', $id='')                 
        $items = FOFModel::getTmpInstance('Profilerefers', 'TrueMatrimonyModel')->enabled(1)->getList(true);        
        $result = array();      
        $result[] = Jhtml::_('select.option','',JText::_('COM_TRUEMATRIMONY_SELECT_PROFILE_FOR'));
        foreach($items as $item) 
            $result[$item->profilerefer_id] = $item->profile_reference;
           //print_r($result);exit;        
        return $result;
    

【问题讨论】:

Strict Standards: Non-static method的可能重复 【参考方案1】:

public function getProfileforlist 替换为public static function getProfileforlist

【讨论】:

以上是关于严格标准:Joomla 中的非静态方法错误的主要内容,如果未能解决你的问题,请参考以下文章

非静态方法 self::getModuleById() 不能在带有 php 8.0.1 的 Joomla 模块上静态调用

数据库连接错误:无法连接到数据库',

访问静态成员函数中的非静态成员的解决方法

从活动中调用片段中的非静态方法?

我们可以从 JavaScript Post 方法调用 aspx.cs 中的非静态函数吗

MFC中静态成员函数调用其他类的非静态变量