Skip to content

chroma-x/php-stack-util

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PHP Stack Util

Build Status Test Coverage Dependency Status SensioLabs Insight Code Climate Latest Stable Version Total Downloads License

A PHP library providing common Stack implementation.

Installation

{
   	"require": {
        "chroma-x/stack-util": "~1.0"
    }
}

Usage

Autoloading and namesapce

require_once('path/to/vendor/autoload.php');

Handling a stack

Pushing to the stack

use ChromaX\StackUtil\Stack;

$stack = new Stack();

$stack
	->push('Item')
	->push('Another item')
	->push(12)
	->push(null)
	->push(8.12);

$stackSize = $stack->size();
echo 'Stack size: ' . $stackSize . PHP_EOL;
Output
Stack size: 5

Reading from the stack

Getting the last item

$lastItem = $stack->get();
echo 'Last item: ' . $lastItem . PHP_EOL;
Output
Last item: 8.12

Getting an item by index

If the index is not available null is returned

$secondItem = $stack->get(1);
echo 'Second item: ' . $secondItem . PHP_EOL;
Output
Second item: Another item

Popping from the stack

$poppedItem = $stack->pop();
echo 'Popped item: ' . $poppedItem . PHP_EOL;

$stackSize = $stack->size();
echo 'Stack size: ' . $stackSize . PHP_EOL;
Output
Popped item: 8.12
Stack size: 4

Updating stacked values

Updating the last item

$lastItem = $stack
	->set('9.12')
	->get();
echo 'Updated last item: ' . $lastItem . PHP_EOL;
Output
Updated last item: 9.12

Updating an item by index

$thirdItem = $stack
	->set('Third item', 2)
	->get(2);
echo 'Updated third item: ' . $thirdItem . PHP_EOL;
Output
Updated third item: Third item

Removing from the stack

echo 'Stack size: ' . $stack->size() . PHP_EOL;
$stack->delete(1);
echo 'Stack size: ' . $stack->size() . PHP_EOL;
Output
Stack size: 4
Stack size: 3

Iterating over the stack

Using foreach

foreach ($stack as $stackItemKey => $stackItemValue) {
	echo 'Stack item ' . $stackItemKey . ': ' . $stackItemValue . PHP_EOL;
}
Output
Stack item 0: Item
Stack item 1: Third item
Stack item 2: 9.12

Using for

for ($i = 0, $n = $stack->size(); $i < $n; $i++) {
	echo 'Stack index ' . $i . ': ' . $stack->get($i) . PHP_EOL;
}
Output
Stack index 0: Item
Stack index 1: Third item
Stack index 2: 9.12

Contribution

Contributing to our projects is always very appreciated.
But: please follow the contribution guidelines written down in the CONTRIBUTING.md document.

License

PHP Stack Util is under the MIT license.

About

A PHP library providing common stack implementation.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages