Annotation of embedaddon/php/tests/classes/interface_implemented.phpt, revision 1.1
1.1 ! misho 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>