5

だから私はこのクラスを持っています:

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() の宣言は、/Users/ ** /JSObjectStorage.php の 175 行の SplObjectStorage::addAll() の宣言と互換性がある必要があります

そして、これは removeAll() と removeAllExcept() に起こります。

何か案は?!


私は使用しています:

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
4

1 に答える 1

3

誰かが「型ヒンティングの問題が原因でネームスペース インターフェイスが機能しない」(Bug #40653)というタイトルのバグ レポートを投稿しました。これは、PHP バージョンの違い ( v. < 5.3.7と表示されます) にもかかわらず、あなたのケースのように見えます。

于 2012-10-31T00:36:43.400 に答える