Объявление метода совместимо, но PHP жалуется

Итак, у меня есть этот класс:

class JSObjectStorage extends \SplObjectStorage
{

    /**Adds a JavaScript object inside the storage, and optionally associate it to some data.*/    
    public function attach($javaScript, $data = null){}

    /**Removes the object from the storage.*/
    public function detach($javaScript){}

    /**Adds all objects-data pairs from a different JavaScriptBundle storage in the current storage.*/
    public function addAll(\SplObjectStorage $storage){}

    /**Removes objects contained in another storage from the current storage.*/
    public function removeAll(\SplObjectStorage $storage){}

    /**Removes all objects except for those contained in another storage from the current storage.*/
    public function removeAllExcept(\SplObjectStorage $storage){}

    /**Alias to JSObjectStorage::attach. */    
    public function offsetSet($javaScript, $data = null){}

    /**Alias to JSObjectStorage::detach*/
    public function offsetUnset($javaScript){}

    /**Returns the data associated with an object in the storage.*/
    public function offsetGet($javaScript){}

    /**This method calculates an identifier for the objects added to JSObjectStorage object.*/
    public function getHash($javaScript){}
}

и это SplObjectStorage:

http://php.net/manual/en/class.splobjectstorage.php

Как вы можете видеть, они идентичны, но когда я создаю экземпляр JSObjectSTorage, я получаю следующую ошибку:

Строгие стандарты: объявление MOWAFW\Core\Type\JavaScript\JSObjectStorage::addAll() должно быть совместимо с таковым для SplObjectStorage::addAll() в / Users /**/JSObjectStorage.php в строке 175

И это происходит, чтобы удалить All () и удалить AllExcept().

Есть идеи?!


Я использую:

PHP 5.3.10 with Suhosin-Patch (cli) (built: Feb 20 2012 22:55:53) 
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies
    with Xdebug v2.1.2, Copyright (c) 2002-2011, by Derick Rethans

1 ответ

Решение

Кто-то опубликовал отчет об ошибке под названием "Интерфейсы пространства имен не работают из-за проблем с хинтингом типов" (ошибка № 40653), который выглядит как ваш случай, несмотря на разницу версий PHP (читается как v. <5.3.7).

Другие вопросы по тегам