Typed arrays in PHP.
Install using Composer.
composer require andrewcarteruk/typed-arrays ^0.2
These are objects that act like arrays, they are not native PHP arrays and will not pass an is_array()
test.
As they are objects, unlike PHP arrays, they are always passed by reference.
use TypedArray\StringArray;
$stringArray = new StringArray(['Hello, World!', 'foo' => 'bar']);
// Or, $stringArray = new StringArray();
try {
$stringArray[] = 1;
} catch (\InvalidArgumentException $exception) {
echo $exception->getMessage() . PHP_EOL;
}
use App\Farm\Chicken;
use TypedArray\InstanceArray;
$chickenArray = new InstanceArray(Chicken::class, [new Chicken('Bob')]);
$chickenArray[] = new Chicken('Tony');
$chickenArray['foo'] = new Chicken('Alice');
try {
$chickenArray[] = 1;
} catch (\InvalidArgumentException $exception) {
echo $exception->getMessage() . PHP_EOL;
}
ArrayArray
, BoolArray
, CallableArray
, FloatArray
, InstanceArray($classPath)
, IntArray
, NumericArray
, ObjectArray
, ResourceArray
, ScalarArray
, StringArray
.