调用除了foreach块之外的对象的方法时出错

时间:2012-09-27 14:46:56

标签: php cakephp-2.0

我有一组表现非常奇怪的对象。如果我将它放在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)

0 个答案:

没有答案