忍者ブログ
[PR]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。



2017/03/27 19:46 |
Zend Framework2.1.3 Zend\Stdlib\ArrayStack
Zend\Stdlib\ArrayStackは、ArrayObjectをスタックとして扱えるようになるクラスです。
中身はArrayObjectをextendsしており、変更されているメソッドはただひとつgetIterator()だけです。


<?php
	header('Content-type: text/html; charset=UTF-8');
	require_once('path/to/channel/vendor/autoload.php');
	use Zend\Stdlib\ArrayStack;
	
	$arrayStack = new ArrayStack();
	$arrayObject = new \ArrayObject();
	
	for($i=0;$i<5;$i++){
		$arrayStack->append('val:' . $i);
		$arrayObject->append('val:' . $i);
	}
	
	// ArrayObject
	print('ArrayObject');
	foreach($arrayObject as $key=>$val){
		print('key:' . $key . ' val:' . $val);
	}
	// ArrayStack
	print('ArrayStack');
	foreach($arrayStack as $key=>$val){
		print('key:' . $key . ' val:' . $val);
	}

出力はこんな。
	ArrayObject
	key:0 val:val:0
	key:1 val:val:1
	key:2 val:val:2
	key:3 val:val:3
	key:4 val:val:4
	ArrayStack
	key:0 val:val:4
	key:1 val:val:3
	key:2 val:val:2
	key:3 val:val:1
	key:4 val:val:0

FIFOのキューがFILOのスタックになり、出力が逆になりました。
はい、これだけのクラスです。

ちなみに、extendsしているArrayObjectはPHPコアの\ArrayObjectであり、Zend\Stdlib\ArrayObjectではありません。

せっかく自前で実装したZend\Stdlib\ArrayObjectを使用していないのは何故なのでしょうかね。


PR


2013/04/05 23:46 | Comments(0) | PHP

コメント

コメントを投稿する






Vodafone絵文字 i-mode絵文字 Ezweb絵文字 (絵文字)



<<今週の実績 2013/04/07 | HOME | Zend Framework2.1.4 Zend\Stdlib\ArrayObject>>
忍者ブログ[PR]