首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >类的声明::save()应该与Class::save()的声明兼容

类的声明::save()应该与Class::save()的声明兼容
EN

Stack Overflow用户
提问于 2014-03-13 18:32:38
回答 2查看 1.1K关注 0票数 6

我正在扩展MongoCollection类,我收到了这条消息。

Db\Mongo\Collection::save()的声明应该与MongoCollection的声明兼容::save()

据我所知,这通常是一个婴儿车报关小姐匹配。

Php.net说这些婴儿车是:

公共混合保存(数组对象$a,数组$options = array() )

我已经尝试了以下所有方法来解决这个问题:

代码语言:javascript
复制
public function save(array &$a, array $options = array())
public function save($a, array $options = array())
public function save(&$a, array $options = array())
public function save($a, $options = array())
public function save($a = array(), $options = array())

我和其他许多人似乎无法匹配这一类型。

有人对如何纠正这个错误有任何想法吗?如何将pram声明为数组\对象?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-22 14:53:43

我犯了这个错误

严格标准:MyMongoCollection的声明::save()应该与MongoCollection::save($array_of_fields_OR_object,数组$options =NULL兼容)

所以我试着:

代码语言:javascript
复制
class MyMongoCollection extends MongoCollection {

    public function save($arr_obj, array $options= null) {

    }

}

而且起作用了。

票数 3
EN

Stack Overflow用户

发布于 2014-03-21 17:12:15

我想知道是否可以使用MongoCollection::save()获得有关ReflectionClass方法的任何信息:

代码语言:javascript
复制
$reflection = new ReflectionClass( 'MongoCollection' );

foreach ( $reflection->getMethod('save')->getParameters() as $param )
{ 
    var_dump( $param->getName(), $param->isArray(), $param->isOptional() ); 
}

要获得丢失的部分,在这种情况下,文档不是最新的吗?

ps:这是一个从这张票获取的稍微修改过的代码示例。

似乎存在类似的问题:扩展update类的MongoGridFS扩展的MongoCollection方法:

覆盖MongoCollection的问题::update

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22387803

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档