Commit:    bdc1e2302ce57f6763c50d03bf987261f34f1d2b
Author:    Lars Strojny <lstro...@php.net>         Sun, 6 Jan 2013 14:46:49 
+0100
Parents:   d7da1aa694a9a29ca7ec772e5d51d96b6dc8dda0
Branches:  PHP-5.4

Link:       
http://git.php.net/?p=php-src.git;a=commitdiff;h=bdc1e2302ce57f6763c50d03bf987261f34f1d2b

Log:
Adding test for bug #63462

Bugs:
https://bugs.php.net/63462

Changed paths:
  A  tests/classes/bug63462.phpt


Diff:
diff --git a/tests/classes/bug63462.phpt b/tests/classes/bug63462.phpt
new file mode 100644
index 0000000..dc5edbd
--- /dev/null
+++ b/tests/classes/bug63462.phpt
@@ -0,0 +1,71 @@
+--TEST--
+Test script to verify that magic methods should be called only once when 
accessing an unset property.
+--CREDITS--
+Marco Pivetta <ocram...@gmail.com>
+--XFAIL--
+Bug 63462 is not yet fixed
+--FILE--
+<?php
+class Test {
+       public    $publicProperty;
+       protected $protectedProperty;
+       private   $privateProperty;
+
+       public function __construct() {
+               unset(
+                       $this->publicProperty,
+                       $this->protectedProperty,
+                       $this->privateProperty
+               );
+       }
+
+       function __get($name) {
+               echo '__get ' . $name . "\n";
+               return $this->$name;
+       }
+
+       function __set($name, $value) {
+               echo '__set ' . $name . "\n";
+               $this->$name = $value;
+       }
+
+       function __isset($name) {
+               echo '__isset ' . $name . "\n";
+               return isset($this->$name);
+       }
+}
+
+$test = new Test();
+
+$test->nonExisting;
+$test->publicProperty;
+$test->protectedProperty;
+$test->privateProperty;
+isset($test->nonExisting);
+isset($test->publicProperty);
+isset($test->protectedProperty);
+isset($test->privateProperty);
+$test->nonExisting       = 'value';
+$test->publicProperty   = 'value';
+$test->protectedProperty = 'value';
+$test->privateProperty   = 'value';
+
+?>
+
+--EXPECTF--
+__get nonExisting
+Notice: Undefined index: nonExisting in %__set__get_006.php on line %d
+__get publicProperty
+Notice: Undefined index: publicProperty in %__set__get_006.php on line %d
+__get protectedProperty
+Notice: Undefined index: protectedProperty in %__set__get_006.php on line %d
+__get privateProperty
+Notice: Undefined index: privateProperty in %__set__get_006.php on line %d
+__isset nonExisting
+__isset publicProperty
+__isset protectedProperty
+__isset privateProperty
+__set nonExisting
+__set publicProperty
+__set protectedProperty
+__set privateProperty


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

Reply via email to