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, 4 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>