我有一系列行为非常奇怪的对象。如果我将它放在 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)