File:
[ELWIX - Embedded LightWeight unIX -] /
embedaddon /
php /
tests /
classes /
interface_implemented.phpt
Revision
1.1.1.1 (vendor branch):
download - view:
text,
annotated -
select for diffs -
revision graph
Tue Feb 21 23:48:06 2012 UTC (12 years, 6 months ago) by
misho
Branches:
php,
MAIN
CVS tags:
v5_4_3elwix,
v5_4_29p0,
v5_4_29,
v5_4_20p0,
v5_4_20,
v5_4_17p0,
v5_4_17,
v5_3_10,
HEAD
php
1: --TEST--
2: ZE2 An interface is inherited
3: --SKIPIF--
4: <?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 needed'); ?>
5: --FILE--
6: <?php
7:
8: interface if_a {
9: function f_a();
10: }
11:
12: interface if_b extends if_a {
13: function f_b();
14: }
15:
16: class base {
17: function _is_a($sub) {
18: echo 'is_a('.get_class($this).', '.$sub.') = '.(($this instanceof $sub) ? 'yes' : 'no')."\n";
19: }
20: function test() {
21: echo $this->_is_a('base');
22: echo $this->_is_a('derived_a');
23: echo $this->_is_a('derived_b');
24: echo $this->_is_a('derived_c');
25: echo $this->_is_a('derived_d');
26: echo $this->_is_a('if_a');
27: echo $this->_is_a('if_b');
28: echo "\n";
29: }
30: }
31:
32: class derived_a extends base implements if_a {
33: function f_a() {}
34: }
35:
36: class derived_b extends base implements if_a, if_b {
37: function f_a() {}
38: function f_b() {}
39: }
40:
41: class derived_c extends derived_a implements if_b {
42: function f_b() {}
43: }
44:
45: class derived_d extends derived_c {
46: }
47:
48: $t = new base();
49: $t->test();
50:
51: $t = new derived_a();
52: $t->test();
53:
54: $t = new derived_b();
55: $t->test();
56:
57: $t = new derived_c();
58: $t->test();
59:
60: $t = new derived_d();
61: $t->test();
62:
63: ?>
64: --EXPECTF--
65: is_a(base, base) = yes
66: is_a(base, derived_a) = no
67: is_a(base, derived_b) = no
68: is_a(base, derived_c) = no
69: is_a(base, derived_d) = no
70: is_a(base, if_a) = no
71: is_a(base, if_b) = no
72:
73: is_a(derived_a, base) = yes
74: is_a(derived_a, derived_a) = yes
75: is_a(derived_a, derived_b) = no
76: is_a(derived_a, derived_c) = no
77: is_a(derived_a, derived_d) = no
78: is_a(derived_a, if_a) = yes
79: is_a(derived_a, if_b) = no
80:
81: is_a(derived_b, base) = yes
82: is_a(derived_b, derived_a) = no
83: is_a(derived_b, derived_b) = yes
84: is_a(derived_b, derived_c) = no
85: is_a(derived_b, derived_d) = no
86: is_a(derived_b, if_a) = yes
87: is_a(derived_b, if_b) = yes
88:
89: is_a(derived_c, base) = yes
90: is_a(derived_c, derived_a) = yes
91: is_a(derived_c, derived_b) = no
92: is_a(derived_c, derived_c) = yes
93: is_a(derived_c, derived_d) = no
94: is_a(derived_c, if_a) = yes
95: is_a(derived_c, if_b) = yes
96:
97: is_a(derived_d, base) = yes
98: is_a(derived_d, derived_a) = yes
99: is_a(derived_d, derived_b) = no
100: is_a(derived_d, derived_c) = yes
101: is_a(derived_d, derived_d) = yes
102: is_a(derived_d, if_a) = yes
103: is_a(derived_d, if_b) = yes
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>