aboutsummaryrefslogtreecommitdiff
path: root/Examples/test-suite/php/overload_bool_runme.php
diff options
context:
space:
mode:
Diffstat (limited to 'Examples/test-suite/php/overload_bool_runme.php')
-rw-r--r--Examples/test-suite/php/overload_bool_runme.php42
1 files changed, 42 insertions, 0 deletions
diff --git a/Examples/test-suite/php/overload_bool_runme.php b/Examples/test-suite/php/overload_bool_runme.php
new file mode 100644
index 000000000..e477330ef
--- /dev/null
+++ b/Examples/test-suite/php/overload_bool_runme.php
@@ -0,0 +1,42 @@
+<?php
+require "tests.php";
+
+# Overloading bool, int, string
+check::equal(overloaded(true), "bool", "wrong!");
+check::equal(overloaded(false), "bool", "wrong!");
+
+check::equal(overloaded(0), "int", "wrong!");
+check::equal(overloaded(1), "int", "wrong!");
+check::equal(overloaded(2), "int", "wrong!");
+
+check::equal(overloaded("1234"), "string", "wrong!");
+
+# Test bool masquerading as int
+check::equal(intfunction(true), "int", "wrong!");
+check::equal(intfunction(false), "int", "wrong!");
+
+# Test int masquerading as bool
+check::equal(boolfunction(1), "true", "wrong!");
+check::equal(boolfunction(0), "false", "wrong!");
+
+#############################################
+
+# Overloading bool, int, string
+check::equal(overloaded_ref(true), "bool", "wrong!");
+check::equal(overloaded_ref(false), "bool", "wrong!");
+
+check::equal(overloaded_ref(0), "int", "wrong!");
+check::equal(overloaded_ref(1), "int", "wrong!");
+check::equal(overloaded_ref(2), "int", "wrong!");
+
+check::equal(overloaded_ref("1234"), "string", "wrong!");
+
+# Test bool masquerading as int
+check::equal(intfunction_ref(true), "int", "wrong!");
+check::equal(intfunction_ref(false), "int", "wrong!");
+
+# Test int masquerading as bool
+check::equal(boolfunction(1), "true", "wrong!");
+check::equal(boolfunction(0), "false", "wrong!");
+
+check::done();