coco-project / magic-access
\ArrayAccess, \Countable, \IteratorAggregate and __set,__get implementations
v1.0.2
2024-01-06 07:15 UTC
Requires
- php: >=8.0
Requires (Dev)
- phpstan/phpstan: ^1.10
- phpunit/phpunit: ^9.6
- squizlabs/php_codesniffer: ^3.8
README
\ArrayAccess, \Countable, \IteratorAggregate and __set,__get implementations
Installation
You can install the package via composer:
composer require coco-project/magic-access
Here's a quick example:
<?php require '../vendor/autoload.php'; $m = new \Coco\magicAccess\MagicArray(); $m[] = 'array'; $m[][] = 'array222'; var_export($m->getData()); /* [ 0 => 'array', 1 => [ 0 => 'array222', ], ] * */
<?php require '../vendor/autoload.php'; $m = new \Coco\magicAccess\MagicArray(); $m[100] = 111; $m['a'] = 'aaa'; $m['b'] = []; $m['b'][] = 'aaa111'; $m['b'][][] = 'aaa111222'; var_export($m->getData()); /* [ 100 => 111, 'a' => 'aaa', 'b' => [ 0 => 'aaa111', 1 => [ 0 => 'aaa111222', ], ], ] */
<?php require '../vendor/autoload.php'; class A { use \Coco\magicAccess\MagicMethod; } $a = new A(); $a->b = []; $a->b[] = 'a'; $a->b[][] = 'b'; $a->b[][]['h'] = 'c'; //b echo $a->b[1]['0']; //c echo $a->b[2][0]['h'];
<?php require '../vendor/autoload.php'; class A { use \Coco\magicAccess\MagicMethod; } $a = new A(); $a->b = []; $a->c = 123456; $bb = &$a->c; $bb = 888888; //888888 echo $a->c; unset($a->c); array_push($a->b, 1); array_push($a->b, 2); print_r($a); /* Object ( [b] => Array ( [0] => 1 [1] => 2 ) ) */
<?php require '../vendor/autoload.php'; $m = new \Coco\magicAccess\MagicArray(); array_push($m[], 212); array_push($m[1], 22); //212 print_r($m[0][0]);
Testing
composer test
License
MIT