summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorAlan Knowles <alan_k@php.net>2011-09-24 01:29:48 +0000
committerAlan Knowles <alan_k@php.net>2011-09-24 01:29:48 +0000
commit55573c1418935bbab9e03b1cb247848c9bb7646c (patch)
tree2e832b7375b7150344b00db0521af8ec3ad06e92 /tests
parentdbc999c6e1a3b7daa43a52df2394979b805d1c28 (diff)
downloadphp-git-55573c1418935bbab9e03b1cb247848c9bb7646c.tar.gz
clean up is_a test, so that it covers more use cases - negative and positive testing
Diffstat (limited to 'tests')
-rw-r--r--tests/classes/is_a.phpt517
1 files changed, 94 insertions, 423 deletions
diff --git a/tests/classes/is_a.phpt b/tests/classes/is_a.phpt
index e6f250648d..0069b93570 100644
--- a/tests/classes/is_a.phpt
+++ b/tests/classes/is_a.phpt
@@ -19,9 +19,11 @@ class base {
echo "\n>>> With Defined class\n";
echo str_pad('is_a( OBJECT:'.get_class($this).', '.$sub.') = ', 60) . (is_a($this, $sub) ? 'yes' : 'no')."\n";
echo str_pad('is_a( STRING:'.get_class($this).', '.$sub.') = ', 60). (is_a(get_class($this), $sub) ? 'yes' : 'no')."\n";
+ echo str_pad('is_a( STRING:'.get_class($this).', '.$sub.', true) = ', 60). (is_a(get_class($this), $sub, true) ? 'yes' : 'no')."\n";
echo str_pad('is_subclass_of( OBJECT:'.get_class($this).', '.$sub.') = ', 60). (is_subclass_of($this, $sub) ? 'yes' : 'no')."\n";
echo str_pad('is_subclass_of( STRING:'.get_class($this).', '.$sub.') = ', 60). (is_subclass_of(get_class($this), $sub) ? 'yes' : 'no')."\n";
-
+ echo str_pad('is_subclass_of( STRING:'.get_class($this).', '.$sub.',false) = ', 60). (is_subclass_of(get_class($this), $sub , false) ? 'yes' : 'no')."\n";
+
// with autoload options..
echo ">>> With Undefined\n";
echo str_pad('is_a( STRING:undefB, '.$sub.',true) = ', 60). (is_a('undefB', $sub, true) ? 'yes' : 'no')."\n";
@@ -31,12 +33,8 @@ class base {
}
function test() {
echo $this->_is_a('base');
- echo $this->_is_a('derived_a');
- echo $this->_is_a('derived_b');
- echo $this->_is_a('derived_c');
- echo $this->_is_a('derived_d');
- echo $this->_is_a('if_a');
- echo $this->_is_a('if_b');
+ echo $this->_is_a('derived_a');
+ echo $this->_is_a('if_a');
echo $this->_is_a('undefA');
echo "\n";
}
@@ -60,6 +58,10 @@ class derived_d extends derived_c {
$t = new base();
$t->test();
+
+$t = new derived_a();
+$t->test();
+
eval('
function __autoload($name)
{
@@ -78,13 +80,7 @@ $t->test();
$t = new derived_b();
$t->test();
-
-$t = new derived_c();
-$t->test();
-
-$t = new derived_d();
-$t->test();
-
+
@@ -94,8 +90,10 @@ $t->test();
>>> With Defined class
is_a( OBJECT:base, base) = yes
is_a( STRING:base, base) = no
+is_a( STRING:base, base, true) = yes
is_subclass_of( OBJECT:base, base) = no
is_subclass_of( STRING:base, base) = no
+is_subclass_of( STRING:base, base,false) = no
>>> With Undefined
is_a( STRING:undefB, base,true) = no
is_a( STRING:undefB, base) = no
@@ -105,8 +103,10 @@ is_subclass_of( STRING:undefB, base) = no
>>> With Defined class
is_a( OBJECT:base, derived_a) = no
is_a( STRING:base, derived_a) = no
+is_a( STRING:base, derived_a, true) = no
is_subclass_of( OBJECT:base, derived_a) = no
is_subclass_of( STRING:base, derived_a) = no
+is_subclass_of( STRING:base, derived_a,false) = no
>>> With Undefined
is_a( STRING:undefB, derived_a,true) = no
is_a( STRING:undefB, derived_a) = no
@@ -114,43 +114,65 @@ is_subclass_of( STRING:undefB, derived_a,false) = no
is_subclass_of( STRING:undefB, derived_a) = no
>>> With Defined class
-is_a( OBJECT:base, derived_b) = no
-is_a( STRING:base, derived_b) = no
-is_subclass_of( OBJECT:base, derived_b) = no
-is_subclass_of( STRING:base, derived_b) = no
+is_a( OBJECT:base, if_a) = no
+is_a( STRING:base, if_a) = no
+is_a( STRING:base, if_a, true) = no
+is_subclass_of( OBJECT:base, if_a) = no
+is_subclass_of( STRING:base, if_a) = no
+is_subclass_of( STRING:base, if_a,false) = no
+>>> With Undefined
+is_a( STRING:undefB, if_a,true) = no
+is_a( STRING:undefB, if_a) = no
+is_subclass_of( STRING:undefB, if_a,false) = no
+is_subclass_of( STRING:undefB, if_a) = no
+
+>>> With Defined class
+is_a( OBJECT:base, undefA) = no
+is_a( STRING:base, undefA) = no
+is_a( STRING:base, undefA, true) = no
+is_subclass_of( OBJECT:base, undefA) = no
+is_subclass_of( STRING:base, undefA) = no
+is_subclass_of( STRING:base, undefA,false) = no
>>> With Undefined
-is_a( STRING:undefB, derived_b,true) = no
-is_a( STRING:undefB, derived_b) = no
-is_subclass_of( STRING:undefB, derived_b,false) = no
-is_subclass_of( STRING:undefB, derived_b) = no
+is_a( STRING:undefB, undefA,true) = no
+is_a( STRING:undefB, undefA) = no
+is_subclass_of( STRING:undefB, undefA,false) = no
+is_subclass_of( STRING:undefB, undefA) = no
+
>>> With Defined class
-is_a( OBJECT:base, derived_c) = no
-is_a( STRING:base, derived_c) = no
-is_subclass_of( OBJECT:base, derived_c) = no
-is_subclass_of( STRING:base, derived_c) = no
+is_a( OBJECT:derived_a, base) = yes
+is_a( STRING:derived_a, base) = no
+is_a( STRING:derived_a, base, true) = yes
+is_subclass_of( OBJECT:derived_a, base) = yes
+is_subclass_of( STRING:derived_a, base) = yes
+is_subclass_of( STRING:derived_a, base,false) = no
>>> With Undefined
-is_a( STRING:undefB, derived_c,true) = no
-is_a( STRING:undefB, derived_c) = no
-is_subclass_of( STRING:undefB, derived_c,false) = no
-is_subclass_of( STRING:undefB, derived_c) = no
+is_a( STRING:undefB, base,true) = no
+is_a( STRING:undefB, base) = no
+is_subclass_of( STRING:undefB, base,false) = no
+is_subclass_of( STRING:undefB, base) = no
>>> With Defined class
-is_a( OBJECT:base, derived_d) = no
-is_a( STRING:base, derived_d) = no
-is_subclass_of( OBJECT:base, derived_d) = no
-is_subclass_of( STRING:base, derived_d) = no
+is_a( OBJECT:derived_a, derived_a) = yes
+is_a( STRING:derived_a, derived_a) = no
+is_a( STRING:derived_a, derived_a, true) = yes
+is_subclass_of( OBJECT:derived_a, derived_a) = no
+is_subclass_of( STRING:derived_a, derived_a) = no
+is_subclass_of( STRING:derived_a, derived_a,false) = no
>>> With Undefined
-is_a( STRING:undefB, derived_d,true) = no
-is_a( STRING:undefB, derived_d) = no
-is_subclass_of( STRING:undefB, derived_d,false) = no
-is_subclass_of( STRING:undefB, derived_d) = no
+is_a( STRING:undefB, derived_a,true) = no
+is_a( STRING:undefB, derived_a) = no
+is_subclass_of( STRING:undefB, derived_a,false) = no
+is_subclass_of( STRING:undefB, derived_a) = no
>>> With Defined class
-is_a( OBJECT:base, if_a) = no
-is_a( STRING:base, if_a) = no
-is_subclass_of( OBJECT:base, if_a) = no
-is_subclass_of( STRING:base, if_a) = no
+is_a( OBJECT:derived_a, if_a) = yes
+is_a( STRING:derived_a, if_a) = no
+is_a( STRING:derived_a, if_a, true) = yes
+is_subclass_of( OBJECT:derived_a, if_a) = yes
+is_subclass_of( STRING:derived_a, if_a) = yes
+is_subclass_of( STRING:derived_a, if_a,false) = no
>>> With Undefined
is_a( STRING:undefB, if_a,true) = no
is_a( STRING:undefB, if_a) = no
@@ -158,21 +180,12 @@ is_subclass_of( STRING:undefB, if_a,false) = no
is_subclass_of( STRING:undefB, if_a) = no
>>> With Defined class
-is_a( OBJECT:base, if_b) = no
-is_a( STRING:base, if_b) = no
-is_subclass_of( OBJECT:base, if_b) = no
-is_subclass_of( STRING:base, if_b) = no
->>> With Undefined
-is_a( STRING:undefB, if_b,true) = no
-is_a( STRING:undefB, if_b) = no
-is_subclass_of( STRING:undefB, if_b,false) = no
-is_subclass_of( STRING:undefB, if_b) = no
-
->>> With Defined class
-is_a( OBJECT:base, undefA) = no
-is_a( STRING:base, undefA) = no
-is_subclass_of( OBJECT:base, undefA) = no
-is_subclass_of( STRING:base, undefA) = no
+is_a( OBJECT:derived_a, undefA) = no
+is_a( STRING:derived_a, undefA) = no
+is_a( STRING:derived_a, undefA, true) = no
+is_subclass_of( OBJECT:derived_a, undefA) = no
+is_subclass_of( STRING:derived_a, undefA) = no
+is_subclass_of( STRING:derived_a, undefA,false) = no
>>> With Undefined
is_a( STRING:undefB, undefA,true) = no
is_a( STRING:undefB, undefA) = no
@@ -185,8 +198,10 @@ NOW WITH AUTOLOAD
>>> With Defined class
is_a( OBJECT:base, base) = yes
is_a( STRING:base, base) = no
+is_a( STRING:base, base, true) = yes
is_subclass_of( OBJECT:base, base) = no
is_subclass_of( STRING:base, base) = no
+is_subclass_of( STRING:base, base,false) = no
>>> With Undefined
>>>> In __autoload: string(6) "undefB"
is_a( STRING:undefB, base,true) = no
@@ -198,8 +213,10 @@ is_subclass_of( STRING:undefB, base) = no
>>> With Defined class
is_a( OBJECT:base, derived_a) = no
is_a( STRING:base, derived_a) = no
+is_a( STRING:base, derived_a, true) = no
is_subclass_of( OBJECT:base, derived_a) = no
is_subclass_of( STRING:base, derived_a) = no
+is_subclass_of( STRING:base, derived_a,false) = no
>>> With Undefined
>>>> In __autoload: string(6) "undefB"
is_a( STRING:undefB, derived_a,true) = no
@@ -209,49 +226,12 @@ is_subclass_of( STRING:undefB, derived_a,false) = no
is_subclass_of( STRING:undefB, derived_a) = no
>>> With Defined class
-is_a( OBJECT:base, derived_b) = no
-is_a( STRING:base, derived_b) = no
-is_subclass_of( OBJECT:base, derived_b) = no
-is_subclass_of( STRING:base, derived_b) = no
->>> With Undefined
->>>> In __autoload: string(6) "undefB"
-is_a( STRING:undefB, derived_b,true) = no
-is_a( STRING:undefB, derived_b) = no
-is_subclass_of( STRING:undefB, derived_b,false) = no
->>>> In __autoload: string(6) "undefB"
-is_subclass_of( STRING:undefB, derived_b) = no
-
->>> With Defined class
-is_a( OBJECT:base, derived_c) = no
-is_a( STRING:base, derived_c) = no
-is_subclass_of( OBJECT:base, derived_c) = no
-is_subclass_of( STRING:base, derived_c) = no
->>> With Undefined
->>>> In __autoload: string(6) "undefB"
-is_a( STRING:undefB, derived_c,true) = no
-is_a( STRING:undefB, derived_c) = no
-is_subclass_of( STRING:undefB, derived_c,false) = no
->>>> In __autoload: string(6) "undefB"
-is_subclass_of( STRING:undefB, derived_c) = no
-
->>> With Defined class
-is_a( OBJECT:base, derived_d) = no
-is_a( STRING:base, derived_d) = no
-is_subclass_of( OBJECT:base, derived_d) = no
-is_subclass_of( STRING:base, derived_d) = no
->>> With Undefined
->>>> In __autoload: string(6) "undefB"
-is_a( STRING:undefB, derived_d,true) = no
-is_a( STRING:undefB, derived_d) = no
-is_subclass_of( STRING:undefB, derived_d,false) = no
->>>> In __autoload: string(6) "undefB"
-is_subclass_of( STRING:undefB, derived_d) = no
-
->>> With Defined class
is_a( OBJECT:base, if_a) = no
is_a( STRING:base, if_a) = no
+is_a( STRING:base, if_a, true) = no
is_subclass_of( OBJECT:base, if_a) = no
is_subclass_of( STRING:base, if_a) = no
+is_subclass_of( STRING:base, if_a,false) = no
>>> With Undefined
>>>> In __autoload: string(6) "undefB"
is_a( STRING:undefB, if_a,true) = no
@@ -261,23 +241,12 @@ is_subclass_of( STRING:undefB, if_a,false) = no
is_subclass_of( STRING:undefB, if_a) = no
>>> With Defined class
-is_a( OBJECT:base, if_b) = no
-is_a( STRING:base, if_b) = no
-is_subclass_of( OBJECT:base, if_b) = no
-is_subclass_of( STRING:base, if_b) = no
->>> With Undefined
->>>> In __autoload: string(6) "undefB"
-is_a( STRING:undefB, if_b,true) = no
-is_a( STRING:undefB, if_b) = no
-is_subclass_of( STRING:undefB, if_b,false) = no
->>>> In __autoload: string(6) "undefB"
-is_subclass_of( STRING:undefB, if_b) = no
-
->>> With Defined class
is_a( OBJECT:base, undefA) = no
is_a( STRING:base, undefA) = no
+is_a( STRING:base, undefA, true) = no
is_subclass_of( OBJECT:base, undefA) = no
is_subclass_of( STRING:base, undefA) = no
+is_subclass_of( STRING:base, undefA,false) = no
>>> With Undefined
>>>> In __autoload: string(6) "undefB"
is_a( STRING:undefB, undefA,true) = no
@@ -290,8 +259,10 @@ is_subclass_of( STRING:undefB, undefA) = no
>>> With Defined class
is_a( OBJECT:derived_a, base) = yes
is_a( STRING:derived_a, base) = no
+is_a( STRING:derived_a, base, true) = yes
is_subclass_of( OBJECT:derived_a, base) = yes
is_subclass_of( STRING:derived_a, base) = yes
+is_subclass_of( STRING:derived_a, base,false) = no
>>> With Undefined
>>>> In __autoload: string(6) "undefB"
is_a( STRING:undefB, base,true) = no
@@ -303,8 +274,10 @@ is_subclass_of( STRING:undefB, base) = no
>>> With Defined class
is_a( OBJECT:derived_a, derived_a) = yes
is_a( STRING:derived_a, derived_a) = no
+is_a( STRING:derived_a, derived_a, true) = yes
is_subclass_of( OBJECT:derived_a, derived_a) = no
is_subclass_of( STRING:derived_a, derived_a) = no
+is_subclass_of( STRING:derived_a, derived_a,false) = no
>>> With Undefined
>>>> In __autoload: string(6) "undefB"
is_a( STRING:undefB, derived_a,true) = no
@@ -314,49 +287,12 @@ is_subclass_of( STRING:undefB, derived_a,false) = no
is_subclass_of( STRING:undefB, derived_a) = no
>>> With Defined class
-is_a( OBJECT:derived_a, derived_b) = no
-is_a( STRING:derived_a, derived_b) = no
-is_subclass_of( OBJECT:derived_a, derived_b) = no
-is_subclass_of( STRING:derived_a, derived_b) = no
->>> With Undefined
->>>> In __autoload: string(6) "undefB"
-is_a( STRING:undefB, derived_b,true) = no
-is_a( STRING:undefB, derived_b) = no
-is_subclass_of( STRING:undefB, derived_b,false) = no
->>>> In __autoload: string(6) "undefB"
-is_subclass_of( STRING:undefB, derived_b) = no
-
->>> With Defined class
-is_a( OBJECT:derived_a, derived_c) = no
-is_a( STRING:derived_a, derived_c) = no
-is_subclass_of( OBJECT:derived_a, derived_c) = no
-is_subclass_of( STRING:derived_a, derived_c) = no
->>> With Undefined
->>>> In __autoload: string(6) "undefB"
-is_a( STRING:undefB, derived_c,true) = no
-is_a( STRING:undefB, derived_c) = no
-is_subclass_of( STRING:undefB, derived_c,false) = no
->>>> In __autoload: string(6) "undefB"
-is_subclass_of( STRING:undefB, derived_c) = no
-
->>> With Defined class
-is_a( OBJECT:derived_a, derived_d) = no
-is_a( STRING:derived_a, derived_d) = no
-is_subclass_of( OBJECT:derived_a, derived_d) = no
-is_subclass_of( STRING:derived_a, derived_d) = no
->>> With Undefined
->>>> In __autoload: string(6) "undefB"
-is_a( STRING:undefB, derived_d,true) = no
-is_a( STRING:undefB, derived_d) = no
-is_subclass_of( STRING:undefB, derived_d,false) = no
->>>> In __autoload: string(6) "undefB"
-is_subclass_of( STRING:undefB, derived_d) = no
-
->>> With Defined class
is_a( OBJECT:derived_a, if_a) = yes
is_a( STRING:derived_a, if_a) = no
+is_a( STRING:derived_a, if_a, true) = yes
is_subclass_of( OBJECT:derived_a, if_a) = yes
is_subclass_of( STRING:derived_a, if_a) = yes
+is_subclass_of( STRING:derived_a, if_a,false) = no
>>> With Undefined
>>>> In __autoload: string(6) "undefB"
is_a( STRING:undefB, if_a,true) = no
@@ -366,23 +302,12 @@ is_subclass_of( STRING:undefB, if_a,false) = no
is_subclass_of( STRING:undefB, if_a) = no
>>> With Defined class
-is_a( OBJECT:derived_a, if_b) = no
-is_a( STRING:derived_a, if_b) = no
-is_subclass_of( OBJECT:derived_a, if_b) = no
-is_subclass_of( STRING:derived_a, if_b) = no
->>> With Undefined
->>>> In __autoload: string(6) "undefB"
-is_a( STRING:undefB, if_b,true) = no
-is_a( STRING:undefB, if_b) = no
-is_subclass_of( STRING:undefB, if_b,false) = no
->>>> In __autoload: string(6) "undefB"
-is_subclass_of( STRING:undefB, if_b) = no
-
->>> With Defined class
is_a( OBJECT:derived_a, undefA) = no
is_a( STRING:derived_a, undefA) = no
+is_a( STRING:derived_a, undefA, true) = no
is_subclass_of( OBJECT:derived_a, undefA) = no
is_subclass_of( STRING:derived_a, undefA) = no
+is_subclass_of( STRING:derived_a, undefA,false) = no
>>> With Undefined
>>>> In __autoload: string(6) "undefB"
is_a( STRING:undefB, undefA,true) = no
@@ -395,8 +320,10 @@ is_subclass_of( STRING:undefB, undefA) = no
>>> With Defined class
is_a( OBJECT:derived_b, base) = yes
is_a( STRING:derived_b, base) = no
+is_a( STRING:derived_b, base, true) = yes
is_subclass_of( OBJECT:derived_b, base) = yes
is_subclass_of( STRING:derived_b, base) = yes
+is_subclass_of( STRING:derived_b, base,false) = no
>>> With Undefined
>>>> In __autoload: string(6) "undefB"
is_a( STRING:undefB, base,true) = no
@@ -408,8 +335,10 @@ is_subclass_of( STRING:undefB, base) = no
>>> With Defined class
is_a( OBJECT:derived_b, derived_a) = no
is_a( STRING:derived_b, derived_a) = no
+is_a( STRING:derived_b, derived_a, true) = no
is_subclass_of( OBJECT:derived_b, derived_a) = no
is_subclass_of( STRING:derived_b, derived_a) = no
+is_subclass_of( STRING:derived_b, derived_a,false) = no
>>> With Undefined
>>>> In __autoload: string(6) "undefB"
is_a( STRING:undefB, derived_a,true) = no
@@ -419,49 +348,12 @@ is_subclass_of( STRING:undefB, derived_a,false) = no
is_subclass_of( STRING:undefB, derived_a) = no
>>> With Defined class
-is_a( OBJECT:derived_b, derived_b) = yes
-is_a( STRING:derived_b, derived_b) = no
-is_subclass_of( OBJECT:derived_b, derived_b) = no
-is_subclass_of( STRING:derived_b, derived_b) = no
->>> With Undefined
->>>> In __autoload: string(6) "undefB"
-is_a( STRING:undefB, derived_b,true) = no
-is_a( STRING:undefB, derived_b) = no
-is_subclass_of( STRING:undefB, derived_b,false) = no
->>>> In __autoload: string(6) "undefB"
-is_subclass_of( STRING:undefB, derived_b) = no
-
->>> With Defined class
-is_a( OBJECT:derived_b, derived_c) = no
-is_a( STRING:derived_b, derived_c) = no
-is_subclass_of( OBJECT:derived_b, derived_c) = no
-is_subclass_of( STRING:derived_b, derived_c) = no
->>> With Undefined
->>>> In __autoload: string(6) "undefB"
-is_a( STRING:undefB, derived_c,true) = no
-is_a( STRING:undefB, derived_c) = no
-is_subclass_of( STRING:undefB, derived_c,false) = no
->>>> In __autoload: string(6) "undefB"
-is_subclass_of( STRING:undefB, derived_c) = no
-
->>> With Defined class
-is_a( OBJECT:derived_b, derived_d) = no
-is_a( STRING:derived_b, derived_d) = no
-is_subclass_of( OBJECT:derived_b, derived_d) = no
-is_subclass_of( STRING:derived_b, derived_d) = no
->>> With Undefined
->>>> In __autoload: string(6) "undefB"
-is_a( STRING:undefB, derived_d,true) = no
-is_a( STRING:undefB, derived_d) = no
-is_subclass_of( STRING:undefB, derived_d,false) = no
->>>> In __autoload: string(6) "undefB"
-is_subclass_of( STRING:undefB, derived_d) = no
-
->>> With Defined class
is_a( OBJECT:derived_b, if_a) = yes
is_a( STRING:derived_b, if_a) = no
+is_a( STRING:derived_b, if_a, true) = yes
is_subclass_of( OBJECT:derived_b, if_a) = yes
is_subclass_of( STRING:derived_b, if_a) = yes
+is_subclass_of( STRING:derived_b, if_a,false) = no
>>> With Undefined
>>>> In __autoload: string(6) "undefB"
is_a( STRING:undefB, if_a,true) = no
@@ -471,233 +363,12 @@ is_subclass_of( STRING:undefB, if_a,false) = no
is_subclass_of( STRING:undefB, if_a) = no
>>> With Defined class
-is_a( OBJECT:derived_b, if_b) = yes
-is_a( STRING:derived_b, if_b) = no
-is_subclass_of( OBJECT:derived_b, if_b) = yes
-is_subclass_of( STRING:derived_b, if_b) = yes
->>> With Undefined
->>>> In __autoload: string(6) "undefB"
-is_a( STRING:undefB, if_b,true) = no
-is_a( STRING:undefB, if_b) = no
-is_subclass_of( STRING:undefB, if_b,false) = no
->>>> In __autoload: string(6) "undefB"
-is_subclass_of( STRING:undefB, if_b) = no
-
->>> With Defined class
is_a( OBJECT:derived_b, undefA) = no
is_a( STRING:derived_b, undefA) = no
+is_a( STRING:derived_b, undefA, true) = no
is_subclass_of( OBJECT:derived_b, undefA) = no
is_subclass_of( STRING:derived_b, undefA) = no
->>> With Undefined
->>>> In __autoload: string(6) "undefB"
-is_a( STRING:undefB, undefA,true) = no
-is_a( STRING:undefB, undefA) = no
-is_subclass_of( STRING:undefB, undefA,false) = no
->>>> In __autoload: string(6) "undefB"
-is_subclass_of( STRING:undefB, undefA) = no
-
-
->>> With Defined class
-is_a( OBJECT:derived_c, base) = yes
-is_a( STRING:derived_c, base) = no
-is_subclass_of( OBJECT:derived_c, base) = yes
-is_subclass_of( STRING:derived_c, base) = yes
->>> With Undefined
->>>> In __autoload: string(6) "undefB"
-is_a( STRING:undefB, base,true) = no
-is_a( STRING:undefB, base) = no
-is_subclass_of( STRING:undefB, base,false) = no
->>>> In __autoload: string(6) "undefB"
-is_subclass_of( STRING:undefB, base) = no
-
->>> With Defined class
-is_a( OBJECT:derived_c, derived_a) = yes
-is_a( STRING:derived_c, derived_a) = no
-is_subclass_of( OBJECT:derived_c, derived_a) = yes
-is_subclass_of( STRING:derived_c, derived_a) = yes
->>> With Undefined
->>>> In __autoload: string(6) "undefB"
-is_a( STRING:undefB, derived_a,true) = no
-is_a( STRING:undefB, derived_a) = no
-is_subclass_of( STRING:undefB, derived_a,false) = no
->>>> In __autoload: string(6) "undefB"
-is_subclass_of( STRING:undefB, derived_a) = no
-
->>> With Defined class
-is_a( OBJECT:derived_c, derived_b) = no
-is_a( STRING:derived_c, derived_b) = no
-is_subclass_of( OBJECT:derived_c, derived_b) = no
-is_subclass_of( STRING:derived_c, derived_b) = no
->>> With Undefined
->>>> In __autoload: string(6) "undefB"
-is_a( STRING:undefB, derived_b,true) = no
-is_a( STRING:undefB, derived_b) = no
-is_subclass_of( STRING:undefB, derived_b,false) = no
->>>> In __autoload: string(6) "undefB"
-is_subclass_of( STRING:undefB, derived_b) = no
-
->>> With Defined class
-is_a( OBJECT:derived_c, derived_c) = yes
-is_a( STRING:derived_c, derived_c) = no
-is_subclass_of( OBJECT:derived_c, derived_c) = no
-is_subclass_of( STRING:derived_c, derived_c) = no
->>> With Undefined
->>>> In __autoload: string(6) "undefB"
-is_a( STRING:undefB, derived_c,true) = no
-is_a( STRING:undefB, derived_c) = no
-is_subclass_of( STRING:undefB, derived_c,false) = no
->>>> In __autoload: string(6) "undefB"
-is_subclass_of( STRING:undefB, derived_c) = no
-
->>> With Defined class
-is_a( OBJECT:derived_c, derived_d) = no
-is_a( STRING:derived_c, derived_d) = no
-is_subclass_of( OBJECT:derived_c, derived_d) = no
-is_subclass_of( STRING:derived_c, derived_d) = no
->>> With Undefined
->>>> In __autoload: string(6) "undefB"
-is_a( STRING:undefB, derived_d,true) = no
-is_a( STRING:undefB, derived_d) = no
-is_subclass_of( STRING:undefB, derived_d,false) = no
->>>> In __autoload: string(6) "undefB"
-is_subclass_of( STRING:undefB, derived_d) = no
-
->>> With Defined class
-is_a( OBJECT:derived_c, if_a) = yes
-is_a( STRING:derived_c, if_a) = no
-is_subclass_of( OBJECT:derived_c, if_a) = yes
-is_subclass_of( STRING:derived_c, if_a) = yes
->>> With Undefined
->>>> In __autoload: string(6) "undefB"
-is_a( STRING:undefB, if_a,true) = no
-is_a( STRING:undefB, if_a) = no
-is_subclass_of( STRING:undefB, if_a,false) = no
->>>> In __autoload: string(6) "undefB"
-is_subclass_of( STRING:undefB, if_a) = no
-
->>> With Defined class
-is_a( OBJECT:derived_c, if_b) = yes
-is_a( STRING:derived_c, if_b) = no
-is_subclass_of( OBJECT:derived_c, if_b) = yes
-is_subclass_of( STRING:derived_c, if_b) = yes
->>> With Undefined
->>>> In __autoload: string(6) "undefB"
-is_a( STRING:undefB, if_b,true) = no
-is_a( STRING:undefB, if_b) = no
-is_subclass_of( STRING:undefB, if_b,false) = no
->>>> In __autoload: string(6) "undefB"
-is_subclass_of( STRING:undefB, if_b) = no
-
->>> With Defined class
-is_a( OBJECT:derived_c, undefA) = no
-is_a( STRING:derived_c, undefA) = no
-is_subclass_of( OBJECT:derived_c, undefA) = no
-is_subclass_of( STRING:derived_c, undefA) = no
->>> With Undefined
->>>> In __autoload: string(6) "undefB"
-is_a( STRING:undefB, undefA,true) = no
-is_a( STRING:undefB, undefA) = no
-is_subclass_of( STRING:undefB, undefA,false) = no
->>>> In __autoload: string(6) "undefB"
-is_subclass_of( STRING:undefB, undefA) = no
-
-
->>> With Defined class
-is_a( OBJECT:derived_d, base) = yes
-is_a( STRING:derived_d, base) = no
-is_subclass_of( OBJECT:derived_d, base) = yes
-is_subclass_of( STRING:derived_d, base) = yes
->>> With Undefined
->>>> In __autoload: string(6) "undefB"
-is_a( STRING:undefB, base,true) = no
-is_a( STRING:undefB, base) = no
-is_subclass_of( STRING:undefB, base,false) = no
->>>> In __autoload: string(6) "undefB"
-is_subclass_of( STRING:undefB, base) = no
-
->>> With Defined class
-is_a( OBJECT:derived_d, derived_a) = yes
-is_a( STRING:derived_d, derived_a) = no
-is_subclass_of( OBJECT:derived_d, derived_a) = yes
-is_subclass_of( STRING:derived_d, derived_a) = yes
->>> With Undefined
->>>> In __autoload: string(6) "undefB"
-is_a( STRING:undefB, derived_a,true) = no
-is_a( STRING:undefB, derived_a) = no
-is_subclass_of( STRING:undefB, derived_a,false) = no
->>>> In __autoload: string(6) "undefB"
-is_subclass_of( STRING:undefB, derived_a) = no
-
->>> With Defined class
-is_a( OBJECT:derived_d, derived_b) = no
-is_a( STRING:derived_d, derived_b) = no
-is_subclass_of( OBJECT:derived_d, derived_b) = no
-is_subclass_of( STRING:derived_d, derived_b) = no
->>> With Undefined
->>>> In __autoload: string(6) "undefB"
-is_a( STRING:undefB, derived_b,true) = no
-is_a( STRING:undefB, derived_b) = no
-is_subclass_of( STRING:undefB, derived_b,false) = no
->>>> In __autoload: string(6) "undefB"
-is_subclass_of( STRING:undefB, derived_b) = no
-
->>> With Defined class
-is_a( OBJECT:derived_d, derived_c) = yes
-is_a( STRING:derived_d, derived_c) = no
-is_subclass_of( OBJECT:derived_d, derived_c) = yes
-is_subclass_of( STRING:derived_d, derived_c) = yes
->>> With Undefined
->>>> In __autoload: string(6) "undefB"
-is_a( STRING:undefB, derived_c,true) = no
-is_a( STRING:undefB, derived_c) = no
-is_subclass_of( STRING:undefB, derived_c,false) = no
->>>> In __autoload: string(6) "undefB"
-is_subclass_of( STRING:undefB, derived_c) = no
-
->>> With Defined class
-is_a( OBJECT:derived_d, derived_d) = yes
-is_a( STRING:derived_d, derived_d) = no
-is_subclass_of( OBJECT:derived_d, derived_d) = no
-is_subclass_of( STRING:derived_d, derived_d) = no
->>> With Undefined
->>>> In __autoload: string(6) "undefB"
-is_a( STRING:undefB, derived_d,true) = no
-is_a( STRING:undefB, derived_d) = no
-is_subclass_of( STRING:undefB, derived_d,false) = no
->>>> In __autoload: string(6) "undefB"
-is_subclass_of( STRING:undefB, derived_d) = no
-
->>> With Defined class
-is_a( OBJECT:derived_d, if_a) = yes
-is_a( STRING:derived_d, if_a) = no
-is_subclass_of( OBJECT:derived_d, if_a) = yes
-is_subclass_of( STRING:derived_d, if_a) = yes
->>> With Undefined
->>>> In __autoload: string(6) "undefB"
-is_a( STRING:undefB, if_a,true) = no
-is_a( STRING:undefB, if_a) = no
-is_subclass_of( STRING:undefB, if_a,false) = no
->>>> In __autoload: string(6) "undefB"
-is_subclass_of( STRING:undefB, if_a) = no
-
->>> With Defined class
-is_a( OBJECT:derived_d, if_b) = yes
-is_a( STRING:derived_d, if_b) = no
-is_subclass_of( OBJECT:derived_d, if_b) = yes
-is_subclass_of( STRING:derived_d, if_b) = yes
->>> With Undefined
->>>> In __autoload: string(6) "undefB"
-is_a( STRING:undefB, if_b,true) = no
-is_a( STRING:undefB, if_b) = no
-is_subclass_of( STRING:undefB, if_b,false) = no
->>>> In __autoload: string(6) "undefB"
-is_subclass_of( STRING:undefB, if_b) = no
-
->>> With Defined class
-is_a( OBJECT:derived_d, undefA) = no
-is_a( STRING:derived_d, undefA) = no
-is_subclass_of( OBJECT:derived_d, undefA) = no
-is_subclass_of( STRING:derived_d, undefA) = no
+is_subclass_of( STRING:derived_b, undefA,false) = no
>>> With Undefined
>>>> In __autoload: string(6) "undefB"
is_a( STRING:undefB, undefA,true) = no