diff --git a/Examples/test-suite/php/cpp11_final_directors_runme.php b/Examples/test-suite/php/cpp11_final_directors_runme.php new file mode 100644 index 000000000..07e04b15f --- /dev/null +++ b/Examples/test-suite/php/cpp11_final_directors_runme.php @@ -0,0 +1,16 @@ +meth(), 3, "Wrong return value"); diff --git a/Examples/test-suite/php/director_ignore_runme.php b/Examples/test-suite/php/director_ignore_runme.php new file mode 100644 index 000000000..87bc4757d --- /dev/null +++ b/Examples/test-suite/php/director_ignore_runme.php @@ -0,0 +1,24 @@ +Triple(5), 15, "Wrong return value"); + +$b = new DAbstractIgnoresDerived(); +check::equal($b->Quadruple(5), 20, "Wrong return value"); diff --git a/Examples/test-suite/php/director_wombat_runme.php b/Examples/test-suite/php/director_wombat_runme.php new file mode 100644 index 000000000..3e308044f --- /dev/null +++ b/Examples/test-suite/php/director_wombat_runme.php @@ -0,0 +1,52 @@ +meth(); +check::equal(get_class($fooIntsObj), "Foo_integers", "wrong class"); + +check::equal($fooIntsObj->meth(42) , 42, "Foo_integers::meth(n) should return n"); + +// +// Now subclass Foo_integers, but override its virtual method +// meth(n) so that it returns the number plus one. +// +class MyFooInts extends Foo_integers { + function meth($n) { + return $n + 1; + } +} + +// +// Subclass Bar and override its virtual method meth() +// so that it returns a new MyFooInts instance instead of +// a Foo_integers instance. +// +class MyBar extends Bar { + function meth() { + return new MyFooInts(); + } +} + +// +// Now repeat previous tests: +// +// Create a MyBar instance... +// +$barObj = new MyBar(); + +// MyBar::meth should return a MyFooInts instance +$fooIntsObj = $barObj->meth(); +check::equal(get_class($fooIntsObj), "MyFooInts", "wrong class"); + +check::equal($fooIntsObj->meth(42) , 43, "MyFooInts::meth(n) should return n + 1");