我有一组表现非常奇怪的对象。如果我将它放在foreach循环中,我可以运行该方法:
foreach ($options['image']->images as &$image) {
var_dump($options['image']->images[0]->src('small'));
}
返回:
string 'files/small/test.jpg' (length=20)
但是,foreach循环外的var_dump相同:
var_dump($options['image']->images[0]->src('small'));
foreach ($options['image']->images as &$image) {
var_dump($options['image']->images[0]->src('small'));
}
返回
Error: Call to a member function src() on a non-object
我进行了一些有趣的测试:
**Get Class**
echo get_class($options['image']->images[0]);
foreach ($options['image']->images as &$image) {
var_dump($options['image']->images[0]->src('small'));
}
返回:
Image
和
**Get Class Methods**
var_dump(
get_class_methods($options['image']->images[0])
);
foreach ($options['image']->images as &$image) {
var_dump($options['image']->images[0]->src('small'));
}
返回:
array
0 => string '__construct' (length=11)
1 => string 'src' (length=3)
2 => string 'makeThumb' (length=9)
...
我看不出为什么foreach块外面的对象会出现任何问题。值得注意的是,$ options数组本身来自foreach循环:
foreach ($option_goups as $options)