Em Tue, 26 Jul 2011 12:14:15 +0100, Laruence <larue...@php.net> escreveu:

2011/7/26 Gustavo Lopes <glo...@nebm.ist.utl.pt>:
Em Tue, 26 Jul 2011 06:42:50 +0100, Laruence <larue...@php.net> escreveu:

2011/7/25 Laruence <larue...@php.net>:
  #54556  array access to empty var does not trigger a notice
https://bugs.php.net/bug.php?id=54556

Won't this be affected?

<?php
$foo[] = 'bar';

no, this situation won't be affected

Ah, if this is only for read situations, a notice seems appropriate.

  #55128 SplFixedArray::fromArray() does not use extended class

This doesn't look like a good idea. The constructor is not called (and in general can't be, since we can't know how the subclass constructor looks
like), so the new object can be in an illegal state.

After much thought, I think there maybe no reason for fixedarray
extended class  to define it's own constructor, since we provide
fixedarrary::__construct and fromArray already, and extended class
should only get an instance through calling them.

so I think we can make fixedarray::__construct final to make this feature works.

I disagree. Besides being a BC break, there's no good reason to make the constructor final and it has the disadvantage of severely limiting the subclasses.

Instead of using LSB, I think a better option would be to provided a protected final instance method that would do this special form of initialization from an array. Subclasses could then write their own static method (possibly with the same name) for initializing from an array or even accept an array as a constructor argument. This is a bit more work and less magic than LSB, but much more versatile.

--
Gustavo Lopes

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to