summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorMarcus Boerger <helly@php.net>2002-11-24 15:50:28 +0000
committerMarcus Boerger <helly@php.net>2002-11-24 15:50:28 +0000
commit622b45e2a987a4fe8bcd080aa1bc51ad59241e48 (patch)
tree1be35cd2c4da40d8eb79e1cea1f869a3f09970b8 /tests
parent490903da5ad33a7ff40d81339fd5803f56c935b1 (diff)
downloadphp-git-622b45e2a987a4fe8bcd080aa1bc51ad59241e48.tar.gz
Add test against mixing static/non static methods
Diffstat (limited to 'tests')
-rw-r--r--tests/classes/static_mix_1.phpt26
-rw-r--r--tests/classes/static_mix_2.phpt27
2 files changed, 53 insertions, 0 deletions
diff --git a/tests/classes/static_mix_1.phpt b/tests/classes/static_mix_1.phpt
new file mode 100644
index 0000000000..47950b3165
--- /dev/null
+++ b/tests/classes/static_mix_1.phpt
@@ -0,0 +1,26 @@
+--TEST--
+You cannot overload astatic methods with a non static methods
+--SKIPIF--
+<?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 needed'); ?>
+--FILE--
+<?php
+
+class pass {
+ static function show() {
+ echo "Call to function pass::show()\n";
+ }
+}
+
+class fail extends pass {
+ function show() {
+ echo "Call to function fail::show()\n";
+ }
+}
+
+pass::show();
+fail::show();
+
+echo "Done\n"; // shouldn't be displayed of cause
+?>
+--EXPECTF--
+Fatal error: Cannot make static method pass::show() non static in class fail in %s on line %d \ No newline at end of file
diff --git a/tests/classes/static_mix_2.phpt b/tests/classes/static_mix_2.phpt
new file mode 100644
index 0000000000..949b9a1b8d
--- /dev/null
+++ b/tests/classes/static_mix_2.phpt
@@ -0,0 +1,27 @@
+--TEST--
+You cannot overload a non static methods with a static methods
+--SKIPIF--
+<?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 needed'); ?>
+--FILE--
+<?php
+
+class pass {
+ function show() {
+ echo "Call to function pass::show()\n";
+ }
+}
+
+class fail extends pass {
+ static function show() {
+ echo "Call to function fail::show()\n";
+ }
+}
+
+$t = new pass();
+$t->show();
+fail::show();
+
+echo "Done\n"; // shouldn't be displayed of cause
+?>
+--EXPECTF--
+Fatal error: Cannot make non static method pass::show() static in class fail in %s on line %d \ No newline at end of file