php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #39530 __set is not called
Submitted: 2006-11-16 09:45 UTC Modified: 2006-11-16 09:48 UTC
From: g42 at gmx dot net Assigned:
Status: Not a bug Package: Class/Object related
PHP Version: 5.2.0 OS: Linux
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: g42 at gmx dot net
New email:
PHP Version: OS:

 

 [2006-11-16 09:45 UTC] g42 at gmx dot net
Description:
------------
__set is not called if the property is called by reference

Reproduce code:
---------------
<?php
class Test {
        private $properties;
        function __construct() {
                $this->properties = array();
        }
        function __set($name, $value) {
                echo "setting $name\n";
                $this->properties[$name] = $value;
        }
        function __get($name) {
                echo "getting $name\n";
                return ($this->properties[$name]);
        }
}
$test = new Test;
$test->array = array("foo");
array_push($test->array, "bar");
print_r($test->array);
?>


Expected result:
----------------
setting property
getting property
setting property
getting property
Array ( 
    [0] => foo 
    [1] => bar 
)

Actual result:
--------------
setting property
getting property
getting property
Array ( 
    [0] => foo 
    [1] => bar
)


Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2006-11-16 09:48 UTC] tony2001@php.net
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


 
PHP Copyright © 2001-2025 The PHP Group
All rights reserved.
Last updated: Fri Mar 14 15:01:30 2025 UTC