Search code examples
phpmongodbextending

Declaration of Class::save() should be compatible with that of Class::save()


I am extending the MongoCollection Class and I am getting this message.

Declaration of Db\Mongo\Collection::save() should be compatible with that of MongoCollection::save()

I understand that this is normally a pram declaration miss match.

Php.net says the prams are:

public mixed save ( array|object $a [, array $options = array() ] )

I have tried all the following to fix this problem:

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())

And many others and I can NOT seem to be able to match the type.

Does anyone have any ideas on how to fix this error? How do you declare a pram as array|object?


Solution

  • I got this error

    Strict Standards: Declaration of MyMongoCollection::save() should be compatible with MongoCollection::save($array_of_fields_OR_object, array $options = NULL)

    So I tried:

    class MyMongoCollection extends MongoCollection {
    
        public function save($arr_obj, array $options= null) {
    
        }
    
    }
    

    and it works.