cvs: ZendEngine2 /tests bug45186.phpt bug45186_2.phpt
"Felipe Pena" <[email protected]>
| Newsgroups | gmane.comp.php.cvs.zend |
|---|---|
| Message-ID | <cvsfelipe1212690948@cvsserver> |
felipe Thu Jun 5 18:35:48 2008 UTC
Modified files:
/ZendEngine2/tests bug45186.phpt bug45186_2.phpt
Log:
- New tests
http://cvs.php.net/viewvc.cgi/ZendEngine2/tests/bug45186.phpt?r1=1.1&r2=1.2&diff_format=u
Index: ZendEngine2/tests/bug45186.phpt
diff -u /dev/null ZendEngine2/tests/bug45186.phpt:1.2
--- /dev/null Thu Jun 5 18:35:48 2008
+++ ZendEngine2/tests/bug45186.phpt Thu Jun 5 18:35:48 2008
@@ -0,0 +1,54 @@
+--TEST--
+Bug #45186 (__call depends on __callstatic in class scope)
+--FILE--
+<?php
+
+class bar {
+ public function __call($a, $b) {
+ print "__call:\n";
+ var_dump($a);
+ }
+ static public function __callstatic($a, $b) {
+ print "__callstatic:\n";
+ var_dump($a);
+ }
+ public function test() {
+ self::ABC();
+ bar::ABC();
+ call_user_func(array('BAR', 'xyz'));
+ call_user_func('BAR::www');
+ call_user_func(array('self', 'y'));
+ call_user_func('self::y');
+ }
+ static function x() {
+ print "ok\n";
+ }
+}
+
+$x = new bar;
+
+$x->test();
+
+call_user_func(array('BAR','x'));
+call_user_func('BAR::www');
+call_user_func('self::y');
+
+?>
+--EXPECTF--
+__call:
+unicode(3) "ABC"
+__call:
+unicode(3) "ABC"
+__call:
+unicode(3) "xyz"
+__call:
+unicode(3) "www"
+__call:
+unicode(1) "y"
+__call:
+unicode(1) "y"
+ok
+__callstatic:
+unicode(3) "www"
+
+Fatal error: Cannot access self:: when no class scope is active in %s on line %d
http://cvs.php.net/viewvc.cgi/ZendEngine2/tests/bug45186_2.phpt?r1=1.1&r2=1.2&diff_format=u
Index: ZendEngine2/tests/bug45186_2.phpt
diff -u /dev/null ZendEngine2/tests/bug45186_2.phpt:1.2
--- /dev/null Thu Jun 5 18:35:48 2008
+++ ZendEngine2/tests/bug45186_2.phpt Thu Jun 5 18:35:48 2008
@@ -0,0 +1,50 @@
+--TEST--
+Bug #45186.2 (__call depends on __callstatic in class scope)
+--FILE--
+<?php
+
+class bar {
+ public function __call($a, $b) {
+ print "__call:\n";
+ var_dump($a);
+ }
+ public function test() {
+ self::ABC();
+ bar::ABC();
+ call_user_func(array('BAR', 'xyz'));
+ call_user_func('BAR::www');
+ call_user_func(array('self', 'y'));
+ call_user_func('self::y');
+ }
+ static function x() {
+ print "ok\n";
+ }
+}
+
+$x = new bar;
+
+$x->test();
+
+call_user_func(array('BAR','x'));
+call_user_func('BAR::www');
+call_user_func('self::y');
+
+?>
+--EXPECTF--
+__call:
+unicode(3) "ABC"
+__call:
+unicode(3) "ABC"
+__call:
+unicode(3) "xyz"
+__call:
+unicode(3) "www"
+__call:
+unicode(1) "y"
+__call:
+unicode(1) "y"
+ok
+
+Warning: call_user_func() expects parameter 1 to be a valid callback, class 'bar' does not have a method 'www' in %s on line %d
+
+Fatal error: Cannot access self:: when no class scope is active in %s on line %d
--
Zend Engine CVS Mailing List (http://cvs.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php