Advertisement
fruffl

Stack vs Queue

Apr 24th, 2012
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 5.78 KB | None | 0 0
  1. try
  2. {
  3.     class StringStack Extends Stack implements System\iDataTypeString
  4.     {
  5.         use System\tDataTypeStringDelegate;
  6.     }
  7.    
  8.     class StringQueue Extends Queue implements System\iDataTypeString
  9.     {
  10.         use System\tDataTypeStringDelegate;
  11.     }
  12.    
  13.  
  14.         foreach((new DataTypeArray([
  15.         'StringStack' => 'toUpper',
  16.                 'StringQueue' => 'toTitle'
  17.     ]))->keyJoinLeft(__NAMESPACE__.'\\') as $class => $format)
  18.     {
  19.         $list = new $class;
  20.         $list->push('the');
  21.         $list->push('quick');
  22.         $list->push('brown');
  23.         $list->push('fox');
  24.        
  25.         $list->$format();
  26.        
  27.         printf("\n%s START\n", $class);
  28.         printf("\n%s Values:\n", $class);
  29.         foreach($list as $i => $item) printf("%d => %s\n", $i, $item);
  30.        
  31.         foreach(['pop', 'pop', 'peek'] as $call)
  32.         {          
  33.             printf("\n%s:\n", $call);
  34.             print $list->$call();
  35.             print "\n";
  36.            
  37.             printf("\n%s Values:\n", $class);
  38.             foreach($list as $i => $item) printf("%d => %s\n", $i, $item);
  39.         }
  40.        
  41.         printf("\n%s Object:\n", $class);
  42.         var_dump($list);
  43.         printf("\n%s END\n", $class);
  44.         print "\n";
  45.     }
  46.    
  47. }
  48. catch(\ILLI\Exception\Base $e)
  49. {
  50.     print $e->export()->asText();
  51. }
  52. catch(\Exception $e)
  53. {
  54.     var_dump($e);
  55. }
  56.  
  57. /*
  58. localhost\illiFW\dev\StringStack START
  59.  
  60. localhost\illiFW\dev\StringStack Values:
  61. 0 => FOX
  62. 1 => BROWN
  63. 2 => QUICK
  64. 3 => THE
  65.  
  66. pop:
  67. FOX
  68.  
  69. localhost\illiFW\dev\StringStack Values:
  70. 0 => BROWN
  71. 1 => QUICK
  72. 2 => THE
  73.  
  74. pop:
  75. BROWN
  76.  
  77. localhost\illiFW\dev\StringStack Values:
  78. 0 => QUICK
  79. 1 => THE
  80.  
  81. peek:
  82. QUICK
  83.  
  84. localhost\illiFW\dev\StringStack Values:
  85. 0 => QUICK
  86. 1 => THE
  87.  
  88. localhost\illiFW\dev\StringStack Object:
  89. object(localhost\illiFW\dev\StringStack)#2 (1) {
  90.   ["__value":protected]=>
  91.   object(ILLI\System\DataTypeStringArray)#4 (9) {
  92.     ["__RUNTIME_BITS":"ILLI\System\DataTypeArray":private]=>
  93.     object(ILLI\System\Bits)#3 (1) {
  94.       ["__bits":"ILLI\System\Bits":private]=>
  95.       int(0)
  96.     }
  97.     ["__RECOVERABLE_BITS":"ILLI\System\DataTypeArray":private]=>
  98.     NULL
  99.     ["__offsets":"ILLI\System\DataTypeArray":private]=>
  100.     array(2) {
  101.       [0]=>
  102.       int(0)
  103.       [1]=>
  104.       int(1)
  105.     }
  106.     ["__indexes":"ILLI\System\DataTypeArray":private]=>
  107.     array(2) {
  108.       [0]=>
  109.       int(0)
  110.       [1]=>
  111.       int(1)
  112.     }
  113.     ["__itIndex":"ILLI\System\DataTypeArray":private]=>
  114.     int(2)
  115.     ["__lastOffsetInsert":"ILLI\System\DataTypeArray":private]=>
  116.     NULL
  117.     ["__lastOffsetChange":"ILLI\System\DataTypeArray":private]=>
  118.     NULL
  119.     ["__value":protected]=>
  120.     array(2) {
  121.       [0]=>
  122.       object(ILLI\System\DataTypeString)#7 (5) {
  123.         ["__isMultibyte":"ILLI\System\DataTypeString":private]=>
  124.         NULL
  125.         ["__width":"ILLI\System\DataTypeString":private]=>
  126.         NULL
  127.         ["__length":"ILLI\System\DataTypeString":private]=>
  128.         NULL
  129.         ["__value":protected]=>
  130.         string(5) "QUICK"
  131.         ["__initialValue":"ILLI\System\DataType":private]=>
  132.         string(5) "quick"
  133.       }
  134.       [1]=>
  135.       object(ILLI\System\DataTypeString)#5 (5) {
  136.         ["__isMultibyte":"ILLI\System\DataTypeString":private]=>
  137.         NULL
  138.         ["__width":"ILLI\System\DataTypeString":private]=>
  139.         NULL
  140.         ["__length":"ILLI\System\DataTypeString":private]=>
  141.         NULL
  142.         ["__value":protected]=>
  143.         string(3) "THE"
  144.         ["__initialValue":"ILLI\System\DataType":private]=>
  145.         string(3) "the"
  146.       }
  147.     }
  148.     ["__initialValue":"ILLI\System\DataType":private]=>
  149.     array(0) {
  150.     }
  151.   }
  152. }
  153.  
  154. localhost\illiFW\dev\StringStack END
  155.  
  156.  
  157. localhost\illiFW\dev\StringQueue START
  158.  
  159. localhost\illiFW\dev\StringQueue Values:
  160. 0 => The
  161. 1 => Quick
  162. 2 => Brown
  163. 3 => Fox
  164.  
  165. pop:
  166. The
  167.  
  168. localhost\illiFW\dev\StringQueue Values:
  169. 0 => Quick
  170. 1 => Brown
  171. 2 => Fox
  172.  
  173. pop:
  174. Quick
  175.  
  176. localhost\illiFW\dev\StringQueue Values:
  177. 0 => Brown
  178. 1 => Fox
  179.  
  180. peek:
  181. Brown
  182.  
  183. localhost\illiFW\dev\StringQueue Values:
  184. 0 => Brown
  185. 1 => Fox
  186.  
  187. localhost\illiFW\dev\StringQueue Object:
  188. object(localhost\illiFW\dev\StringQueue)#8 (1) {
  189.   ["__value":protected]=>
  190.   object(ILLI\System\DataTypeStringArray)#10 (9) {
  191.     ["__RUNTIME_BITS":"ILLI\System\DataTypeArray":private]=>
  192.     object(ILLI\System\Bits)#9 (1) {
  193.       ["__bits":"ILLI\System\Bits":private]=>
  194.       int(2)
  195.     }
  196.     ["__RECOVERABLE_BITS":"ILLI\System\DataTypeArray":private]=>
  197.     NULL
  198.     ["__offsets":"ILLI\System\DataTypeArray":private]=>
  199.     array(2) {
  200.       [0]=>
  201.       int(0)
  202.       [1]=>
  203.       int(1)
  204.     }
  205.     ["__indexes":"ILLI\System\DataTypeArray":private]=>
  206.     array(2) {
  207.       [0]=>
  208.       int(0)
  209.       [1]=>
  210.       int(1)
  211.     }
  212.     ["__itIndex":"ILLI\System\DataTypeArray":private]=>
  213.     int(2)
  214.     ["__lastOffsetInsert":"ILLI\System\DataTypeArray":private]=>
  215.     NULL
  216.     ["__lastOffsetChange":"ILLI\System\DataTypeArray":private]=>
  217.     NULL
  218.     ["__value":protected]=>
  219.     array(2) {
  220.       [0]=>
  221.       object(ILLI\System\DataTypeString)#7 (5) {
  222.         ["__isMultibyte":"ILLI\System\DataTypeString":private]=>
  223.         NULL
  224.         ["__width":"ILLI\System\DataTypeString":private]=>
  225.         NULL
  226.         ["__length":"ILLI\System\DataTypeString":private]=>
  227.         NULL
  228.         ["__value":protected]=>
  229.         string(5) "Brown"
  230.         ["__initialValue":"ILLI\System\DataType":private]=>
  231.         string(5) "brown"
  232.       }
  233.       [1]=>
  234.       object(ILLI\System\DataTypeString)#3 (5) {
  235.         ["__isMultibyte":"ILLI\System\DataTypeString":private]=>
  236.         NULL
  237.         ["__width":"ILLI\System\DataTypeString":private]=>
  238.         NULL
  239.         ["__length":"ILLI\System\DataTypeString":private]=>
  240.         NULL
  241.         ["__value":protected]=>
  242.         string(3) "Fox"
  243.         ["__initialValue":"ILLI\System\DataType":private]=>
  244.         string(3) "fox"
  245.       }
  246.     }
  247.     ["__initialValue":"ILLI\System\DataType":private]=>
  248.     array(0) {
  249.     }
  250.   }
  251. }
  252.  
  253. localhost\illiFW\dev\StringQueue END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement