严格标准:不应静态调用非静态方法modJumiHelper :: getCodeWritten()

时间:2014-06-24 09:06:28

标签: php joomla static joomla-extensions non-static

我的网站上有这些错误:

严格标准:非静态方法modJumiHelper :: getCodeWritten()不应在第17行的/home/kmxsiksf/www/modules/mod_jumi/mod_jumi.php中静态调用

严格标准:非静态方法modJumiHelper :: getStorageSource()不应在第18行的/home/kmxsiksf/www/modules/mod_jumi/mod_jumi.php中静态调用

这是mod_jumi.php(第17行和第18行分别以$ code_written和$ storage_source开头)

defined('_JEXEC') or die('Restricted access');
if(!defined('DS')){
    define('DS',DIRECTORY_SEPARATOR);
}
// Include the functions only once
require_once(dirname(__FILE__).DS.'helper.php');


$code_written   = modJumiHelper::getCodeWritten($params); //code written or ""
$storage_source = modJumiHelper::getStorageSource($params); //filepathname or record id or ""

if(is_int($storage_source)) { //it is record id
    $code_stored = modJumiHelper::getCodeStored($storage_source); //code or null(error]
}

require(JModuleHelper::getLayoutPath('mod_jumi'));

我找到了很多解决这个问题的方法来将函数转换为非静态函数,但因为我对PHP知之甚少,所以我找不到让它们工作的方法。

非常感谢你的帮助!

1 个答案:

答案 0 :(得分:2)

导致此错误的原因是函数getCodeWritten和getStorageSource不是静态函数。

而不是像这样声明:

public static function getCodeWritten()

他们被宣布为:

public function getCodeWritten()

警告"修复"这可能会导致其他问题。您最好的选择是联系创建扩展程序的人员。