ID:               33015
 User updated by:  pecoes at xs4all dot nl
 Reported By:      pecoes at xs4all dot nl
 Status:           Open
 Bug Type:         SPL related
 Operating System: *
 PHP Version:      5.*
 Assigned To:      helly
 New Comment:

The problem is not in the constructor, is it?  __get should return
array-values as well and every offsetGet should return property-values
as well.


Previous Comments:
------------------------------------------------------------------------

[2005-05-17 15:54:43] pecoes at xs4all dot nl

What would "exchangeArray" do?

------------------------------------------------------------------------

[2005-05-17 15:37:43] [EMAIL PROTECTED]

Yep it's me alone. I'll do something as soon as i find ime then. How
about some exchangeArray() method that drops the current array and
replaces it with the given one. So the following would do what you
want:

class ArrayObjectEx extends ArrayObject
{
  function __construct()
  {
    $this->exchangeArray($this);
  }
}

$obj = new ArrayObjectEx;


------------------------------------------------------------------------

[2005-05-17 13:42:33] pecoes at xs4all dot nl

Thanks for the offer, but I'm not in need of a work-around. IMHO it
would be great to have a "simple" solution - "simple" from a user's
perspective :)

You've created some pretty fascinating stuff with the SPL and from the
looks of it, you're doing this all alone right now, so I really don't
want to rush you... Just tell me how big the chances are in the long
run!

------------------------------------------------------------------------

[2005-05-12 23:15:00] [EMAIL PROTECTED]

I could equip you with a special factory method or a derived class that
does this. But the way it works it is not possible to achieve what you
want with ArrayObject and its current constructor.

------------------------------------------------------------------------

[2005-05-12 12:32:44] pecoes at xs4all dot nl

Description:
------------
It's pretty counter-intuitive, that you can neither access an
ArrayObject's properties with the array-syntax, nor its array-values
with the object-syntax. I think these two should be interchangeable.
Preferably like in ECMAScript...

Reproduce code:
---------------
$a = new ArrayObject();

$a->one   = 1;
$a['two'] = 2;

echo "\$a->one: $a->one \$a->two: $a->two \n";
echo "\$a[one]: $a[one] \$a[two]: $a[two] \n";

Expected result:
----------------
$a->one: 1 $a->two: 2 
$a[one]: 1 $a[two]: 2 

Actual result:
--------------
$a->one: 1 $a->two:
$a[one]:  $a[two]: 2 


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=33015&edit=1

Reply via email to