ID:               24807
 User updated by:  Bertrand dot Willm at laposte dot net
 Reported By:      Bertrand dot Willm at laposte dot net
 Status:           Bogus
 Bug Type:         Class/Object related
 Operating System: Windows XP
 PHP Version:      5.0.0b1 (beta1)
 New Comment:

You suggest me to read ZEND_CHANGES but can't find anything
corresponding to that in the www.php.net site (I use the "Search for"
functionnality on the whole site).
I look again on the page called "PHP: Changes in PHP 5/Zend Engine
2.0", the following new functionnality is explained:
"Dereferencing objects returned from functions".
As it is possible to deference object members and now it is possible to
deference object returned from function, for me, not to be allowed
deference object properties looks like a bug.
It is because of things like this, that I found the __get and __set
methods are an unsatsifactory answer to properties.


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

[2003-07-29 07:26:17] [EMAIL PROTECTED]

Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to report
a bug at http://bugs.php.net/how-to-report.php

Suggest you read ZEND_CHANGES :)

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

[2003-07-25 15:35:14] Bertrand dot Willm at laposte dot net

Description:
------------
I try to use the following notation:
$object->property1->property2 = 'value';
when property1 and property2 are properties we access trow __get and
__set methods.
calling __get with property1 return an object that defined __get and
__set methods.
but there is a warning explaining the object doesn't support property
references.


Reproduce code:
---------------
<?php
class CBaseClass {
   private $text = 'default';
   function __Get() {
      return $this->text;
   }
   function __Set($name, $value) {
      $this->text = $value;
   }
}
class CExtClass {
   private $baseObject;
   function __construct() {
      $this->baseObject = new CBaseClass();
   }
   function __Get() {
      return $this->baseObject;
   }
}
$extObject = new CExtClass();
echo $extObject->extProperty->baseProperty, '<br>';
$extObject->extProperty->baseProperty = 'new';
echo $extObject->extProperty->baseProperty, '<br>';
?>

Expected result:
----------------
default
new


Actual result:
--------------
default

Warning: This object doesn't support property references in
c:\sitesweb\www\test.php5 on line 22
default



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


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

Reply via email to