--- /dev/null
+--TEST--
+comparing objects to other types
+--FILE--
+<?php
+
+class Bar {
+}
+
+$b = new Bar;
+
+var_dump($b == NULL);
+var_dump($b != NULL);
+var_dump($b == true);
+var_dump($b != true);
+var_dump($b == false);
+var_dump($b != false);
+var_dump($b == "");
+var_dump($b != "");
+var_dump($b == 0);
+var_dump($b != 0);
+var_dump($b == 1);
+var_dump($b != 1);
+var_dump($b == 1.0);
+var_dump($b != 1.0);
+var_dump($b == 1);
+
+
+echo "Done\n";
+?>
+--EXPECTF--
+bool(false)
+bool(true)
+bool(true)
+bool(false)
+bool(false)
+bool(true)
+bool(false)
+bool(true)
+
+Notice: Object of class Bar could not be converted to int in %s on line %d
+bool(false)
+
+Notice: Object of class Bar could not be converted to int in %s on line %d
+bool(true)
+
+Notice: Object of class Bar could not be converted to int in %s on line %d
+bool(true)
+
+Notice: Object of class Bar could not be converted to int in %s on line %d
+bool(false)
+
+Notice: Object of class Bar could not be converted to double in %s on line %d
+bool(true)
+
+Notice: Object of class Bar could not be converted to double in %s on line %d
+bool(false)
+
+Notice: Object of class Bar could not be converted to int in %s on line %d
+bool(true)
+Done
--- /dev/null
+--TEST--
+method overloading with different method signature
+--INI--
+error_reporting=8191
+--FILE--
+<?php
+
+class test {
+ function foo() {}
+}
+
+class test2 extends test {
+ function foo() {}
+}
+
+class test3 extends test {
+ function foo($arg) {}
+}
+
+echo "Done\n";
+?>
+--EXPECTF--
+Fatal error: Declaration of test3::foo() must be compatible with that of test::foo() in %s on line %d
--- /dev/null
+--TEST--
+method overloading with different method signature
+--INI--
+error_reporting=8191
+--FILE--
+<?php
+
+class test {
+ function foo($arg) {}
+}
+
+class test2 extends test {
+ function foo($arg) {}
+}
+
+class test3 extends test {
+ function foo($arg, $arg2) {}
+}
+
+echo "Done\n";
+?>
+--EXPECTF--
+Fatal error: Declaration of test3::foo() must be compatible with that of test::foo() in %s on line %d
--- /dev/null
+--TEST--
+method overloading with different method signature
+--INI--
+error_reporting=8191
+--FILE--
+<?php
+
+class test {
+ function foo($arg) {}
+}
+
+class test2 extends test {
+ function foo($arg) {}
+}
+
+class test3 extends test {
+ function foo(&$arg) {}
+}
+
+echo "Done\n";
+?>
+--EXPECTF--
+Fatal error: Declaration of test3::foo() must be compatible with that of test::foo() in %s on line %d
--- /dev/null
+--TEST--
+method overloading with different method signature
+--INI--
+error_reporting=8191
+--FILE--
+<?php
+
+class test {
+ function &foo() {}
+}
+
+class test2 extends test {
+ function &foo() {}
+}
+
+class test3 extends test {
+ function foo() {}
+}
+
+echo "Done\n";
+?>
+--EXPECTF--
+Fatal error: Declaration of test3::foo() must be compatible with that of test::foo() in %s on line %d
--- /dev/null
+--TEST--
+method overloading with different method signature
+--INI--
+error_reporting=8191
+--FILE--
+<?php
+
+class test {
+ function foo($arg, $arg2 = NULL) {}
+}
+
+class test2 extends test {
+ function foo($arg, $arg2 = NULL) {}
+}
+
+class test3 extends test {
+ function foo($arg, $arg2) {}
+}
+
+echo "Done\n";
+?>
+--EXPECTF--
+Fatal error: Declaration of test3::foo() must be compatible with that of test::foo() in %s on line %d
--- /dev/null
+--TEST--
+method overloading with different method signature
+--INI--
+error_reporting=8191
+--FILE--
+<?php
+
+class test {
+ function foo($arg, &$arg2 = NULL) {}
+}
+
+class test2 extends test {
+ function foo($arg, &$arg2 = NULL) {}
+}
+
+class test3 extends test {
+ function foo($arg, &$arg2) {}
+}
+
+echo "Done\n";
+?>
+--EXPECTF--
+Fatal error: Declaration of test3::foo() must be compatible with that of test::foo() in %s on line %d
--- /dev/null
+--TEST--
+method overloading with different method signature
+--INI--
+error_reporting=8191
+--FILE--
+<?php
+
+class test {
+ function foo(Test $arg) {}
+}
+
+class test2 extends test {
+ function foo(Test $arg) {}
+}
+
+class test3 extends test {
+ function foo(Test3 $arg) {}
+}
+
+echo "Done\n";
+?>
+--EXPECTF--
+Fatal error: Declaration of test3::foo() must be compatible with that of test::foo() in %s on line %d
--- /dev/null
+--TEST--
+method overloading with different method signature
+--INI--
+error_reporting=8191
+--FILE--
+<?php
+
+class test {
+ function foo(Test $arg) {}
+}
+
+class test2 extends test {
+ function foo(Test $arg) {}
+}
+
+class test3 extends test {
+ function foo($arg) {}
+}
+
+echo "Done\n";
+?>
+--EXPECTF--
+Fatal error: Declaration of test3::foo() must be compatible with that of test::foo() in %s on line %d