Web lists-archives.com

Re: [PHP] Extending SplDoublyLinkedList with specific child types and avoiding strict notices




On Mon, 2017-03-20 at 13:21 -0600, Ryan Pallas wrote:
> I don't believe this is possible due to not being able to narrow type
> hints
> for arguments in extended classes. However, you could just remove the
> typehint, and check yourself, something like:
> 
>         public class push($item)
>         {
>                 if (!($item instanceof
> SpecificChildTypeClass::class))
>                     throw new TypeError(sprintf(
>                         'Argument 1 passed to %s::push() must be of
> the
> type %s, %s given',
>                        static::class,
>                        SpecificChildTypeClass::class,
>                        gettype($item) != 'object' ? gettype($item) :
> get_class($item)
>                     ));
>                 parent::push($item);
>         }
> > 

That's what I was afraid of. It's annoying, but understandable given
how it's implemented. I might look then at implementing a custom
iterator, as that might better suit my needs here.


Thanks,
Ash

http://www.ashleysheridan.co.uk


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php