2
ZE2 An interface extends base interfaces
4
<?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 needed'); ?>
9
abstract function f_a();
13
abstract function f_b();
16
interface if_c extends if_a, if_b {
17
abstract function f_c();
20
interface if_d extends if_a, if_b {
21
abstract function f_d();
25
abstract function f_d();
28
interface if_f extends /*if_e,*/ if_a, if_b, if_c, if_d /*, if_e*/ {
32
function test($class) {
33
echo "is_a(" . get_class($this) . ", $class) ". (($this instanceof $class) ? "yes\n" : "no\n");
39
class class_a extends base implements if_a {
48
echo $t->test('if_a');
49
echo $t->test('if_b');
50
echo $t->test('if_c');
51
echo $t->test('if_d');
52
echo $t->test('if_e');
56
class class_b extends base implements if_a, if_b {
65
echo $t->test('if_a');
66
echo $t->test('if_b');
67
echo $t->test('if_c');
68
echo $t->test('if_d');
69
echo $t->test('if_e');
73
class class_c extends base implements if_c {
82
echo $t->test('if_a');
83
echo $t->test('if_b');
84
echo $t->test('if_c');
85
echo $t->test('if_d');
86
echo $t->test('if_e');
90
class class_d extends base implements if_d{
99
echo $t->test('if_a');
100
echo $t->test('if_b');
101
echo $t->test('if_c');
102
echo $t->test('if_d');
103
echo $t->test('if_e');
107
class class_e extends base implements if_a, if_b, if_c, if_d {
116
echo $t->test('if_a');
117
echo $t->test('if_b');
118
echo $t->test('if_c');
119
echo $t->test('if_d');
120
echo $t->test('if_e');
124
class class_f extends base implements if_e {
133
echo $t->test('if_a');
134
echo $t->test('if_b');
135
echo $t->test('if_c');
136
echo $t->test('if_d');
137
echo $t->test('if_e');
141
class class_g extends base implements if_f {
150
echo $t->test('if_a');
151
echo $t->test('if_b');
152
echo $t->test('if_c');
153
echo $t->test('if_d');
154
echo $t->test('if_e');
160
is_a(class_a, if_a) yes
161
is_a(class_a, if_b) no
162
is_a(class_a, if_c) no
163
is_a(class_a, if_d) no
164
is_a(class_a, if_e) no
166
is_a(class_b, if_a) yes
167
is_a(class_b, if_b) yes
168
is_a(class_b, if_c) no
169
is_a(class_b, if_d) no
170
is_a(class_b, if_e) no
172
is_a(class_c, if_a) yes
173
is_a(class_c, if_b) yes
174
is_a(class_c, if_c) yes
175
is_a(class_c, if_d) no
176
is_a(class_c, if_e) no
178
is_a(class_d, if_a) yes
179
is_a(class_d, if_b) yes
180
is_a(class_d, if_c) no
181
is_a(class_d, if_d) yes
182
is_a(class_d, if_e) no
184
is_a(class_e, if_a) yes
185
is_a(class_e, if_b) yes
186
is_a(class_e, if_c) yes
187
is_a(class_e, if_d) yes
188
is_a(class_e, if_e) no
190
is_a(class_f, if_a) no
191
is_a(class_f, if_b) no
192
is_a(class_f, if_c) no
193
is_a(class_f, if_d) no
194
is_a(class_f, if_e) yes
196
is_a(class_g, if_a) yes
197
is_a(class_g, if_b) yes
198
is_a(class_g, if_c) yes
199
is_a(class_g, if_d) yes
200
is_a(class_g, if_e) no