File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / tests / classes / interface_doubled.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, 5 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 extends base interfaces
    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 {
   13: 	function f_b();
   14: }
   15: 
   16: interface if_c extends if_a, if_b {
   17: 	function f_c();
   18: }
   19: 
   20: interface if_d extends if_a, if_b {
   21: 	function f_d();
   22: }
   23: 
   24: interface if_e {
   25: 	function f_d();
   26: }
   27: 
   28: interface if_f extends /*if_e,*/ if_a, if_b, if_c, if_d /*, if_e*/ {
   29: }
   30: 
   31: class base {
   32: 	function test($class) {
   33: 		echo "is_a(" . get_class($this) . ", $class) ". (($this instanceof $class) ? "yes\n" : "no\n");
   34: 	}
   35: }
   36: 
   37: echo "class_a\n";
   38: 
   39: class class_a extends base implements if_a {
   40: 	function f_a() {}
   41: 	function f_b() {}
   42: 	function f_c() {}
   43: 	function f_d() {}
   44: 	function f_e() {}
   45: }
   46: 
   47: $t = new class_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');
   53: 
   54: echo "class_b\n";
   55: 
   56: class class_b extends base implements if_a, if_b {
   57: 	function f_a() {}
   58: 	function f_b() {}
   59: 	function f_c() {}
   60: 	function f_d() {}
   61: 	function f_e() {}
   62: }
   63: 
   64: $t = new class_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');
   70: 
   71: echo "class_c\n";
   72: 
   73: class class_c extends base implements if_c {
   74: 	function f_a() {}
   75: 	function f_b() {}
   76: 	function f_c() {}
   77: 	function f_d() {}
   78: 	function f_e() {}
   79: }
   80: 
   81: $t = new class_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');
   87: 
   88: echo "class_d\n";
   89: 
   90: class class_d extends base implements if_d{
   91: 	function f_a() {}
   92: 	function f_b() {}
   93: 	function f_c() {}
   94: 	function f_d() {}
   95: 	function f_e() {}
   96: }
   97: 
   98: $t = new class_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');
  104: 
  105: echo "class_e\n";
  106: 
  107: class class_e extends base implements if_a, if_b, if_c, if_d {
  108: 	function f_a() {}
  109: 	function f_b() {}
  110: 	function f_c() {}
  111: 	function f_d() {}
  112: 	function f_e() {}
  113: }
  114: 
  115: $t = new class_e();
  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');
  121: 
  122: echo "class_f\n";
  123: 
  124: class class_f extends base implements if_e {
  125: 	function f_a() {}
  126: 	function f_b() {}
  127: 	function f_c() {}
  128: 	function f_d() {}
  129: 	function f_e() {}
  130: }
  131: 
  132: $t = new class_f();
  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');
  138: 
  139: echo "class_g\n";
  140: 
  141: class class_g extends base implements if_f {
  142: 	function f_a() {}
  143: 	function f_b() {}
  144: 	function f_c() {}
  145: 	function f_d() {}
  146: 	function f_e() {}
  147: }
  148: 
  149: $t = new class_g();
  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');
  155: 
  156: ?>
  157: ===DONE===
  158: --EXPECTF--
  159: class_a
  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
  165: class_b
  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
  171: class_c
  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
  177: class_d
  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
  183: class_e
  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
  189: class_f
  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
  195: class_g
  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
  201: ===DONE===

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>