当我运行下面的代码,我得到B
预期:有没有办法在PHP中继承ffmpeg_movie类?
class A {
public function __construct($file){}
}
class B extends A {
public function __construct() {
parent::__construct('test.flv');
}
}
$b = new B();
print get_class($b);
然而,考虑下面的代码稍加修改的版本(这里ffmpeg_movie
类是http://ffmpeg-php.sourceforge.net库的一部分):
class B extends ffmpeg_movie {
public function __construct() {
parent::__construct('test.flv');
}
}
$b = new B();
print get_class($b);
它返回ffmpeg_movie
而不是B
。此外,事实证明,在B
类中定义的方法都无法访问使用$b
对象时:
class B extends ffmpeg_movie {
public function __construct() {
parent::__construct('test.flv');
}
public function test() {
print 'ok';
}
}
$b = new B();
$b->test();
Fatal error: Call to undefined method ffmpeg_movie::test() in .../test.php on line 13
究竟这是怎么回事,有没有解决办法?
这不仅仅是get_class函数的bug。 'B'类方法也不可访问(请参阅更新的问题)。 –