在XAMPP上使用最新版本我在joomla上面临以下警告:
Warning: Creating default object from empty value in F:\xampp\htdocs\modules\mod_random_image_with_fancy_zoom\tmpl\default.php on line 26
通常这是通过新变量的显式定义修复的,但是这次我找不到要修改的内容来修复此警告?
$pickoneArray = array();
$pickone = rand(0, count($images)-1);
print_r($pickoneArray);
print_r($images[$pickone]);
$pickoneArray[0]->name = $images[$pickone]->name; //this is line 26
$pickoneArray[0]->folder = $images[$pickone]->folder . "/";
这是print_r的输出:
stdClass Object
(
[name] => pic001.jpg
[folder] => images\images\pic_of_the_day\
)
你可以看到$ pickoneArray没有任何东西可以显示。
答案 0 :(得分:2)
$pickoneArray[0]
不算什么,因此$pickoneArray[0]->name = ...
会创建默认对象。
你应该明确地创建它:
$pickoneArray[0] = new stdClass;
$pickoneArray[0]->name = ...
但是,由于您只是将对象属性重新分配给另一个对象中的相同属性,因此这将更有意义:
$pickoneArray[0] = $images[$pickone];
事实上,这可以归结为:
$pickoneArray = array($images[array_rand($images)]);
但在这里我会问你为什么需要一个阵列。为什么不简单:
$pickone = $images[array_rand($images)];