2

私はこの問題をたくさん検索しました。しかし、正確な答えを見つけることができませんでした。このエラーが発生します警告:85行目のmod_random_image/helper.phpの空の値からデフォルトオブジェクトを作成しています。私のコードを以下に示します。

 58         function getImages(&$params, $folder)
 59         {
 60                 $type           = $params->get( 'type', 'jpg' );
 61 
 62                 $files  = array();
 63                 $images = array();
 64 
 65                 $dir = JPATH_BASE.DS.$folder;
 66 
 67                 // check if directory exists
 68                 if (is_dir($dir))
 69                 {
 70                         if ($handle = opendir($dir)) {
 71                                 while (false !== ($file = readdir($handle))) {
 72                                         if ($file != '.' && $file != '..' && $file != 'CVS' && $file != 'index.html' ) {
 73                                                 $files[] = $file;
 74                                         }
 75                                 }
 76                         }
 77                         closedir($handle);
 78 
 79                         $i = 0;
 80                         foreach ($files as $img)
 81                         {
 82                                 if (!is_dir($dir .DS. $img))
 83                                 {
 84                                         if (preg_match("#$type#i", $img)) {
 85                                                 $images[$i]->name       = $img;
 86                                                 $images[$i]->folder     = $folder;
 87                                                 ++$i;
 88                                         }
 89                                 }
 90                         }
 91                 }
 92 
 93                 return $images;
 94         }

このエラーは、PHPバージョンを5.4.8にアップグレードした後に発生します。joomla設定ファイルも調べました。var $ error_reporting='-1';を設定しました。joomla構成で。しかし、それでも同じエラーが発生します。私はこれまでJoomlaを使用したことがありません。

どんな助けでもありがたいです。ありがとう!

4

1 に答える 1

2

このエラーは、$images[$i]まだオブジェクトとして定義されておらず、PHPが(タイプのstdClass)デフォルトオブジェクトを暗黙的にインスタンス化したために発生します。この問題を解決するには、85行目の前に次の行を追加します。

$images[$i] = new stdClass();
于 2012-10-29T02:03:31.067 に答える