Collections with SPL
ArrayObject
ArrayObject wraps an array so code can use object methods and array-style keys.
wrapped array
Read scalar entries from an `ArrayObject` the same way you would read array keys.
ArrayObject
array_object.php
Replay: real traced execution (multi-file project)
<?php
$key = "red";
$counts = new ArrayObject(["red" => 3, "blue" => 5, "green" => 2]);
$value = $counts[$key];
$totalKeys = $counts->count();
echo "key=" . $key . "\n";
echo "value=" . $value . "\n";
echo "totalKeys=" . $totalKeys . "\n";
<?php
$key = "blue";
$counts = new ArrayObject(["red" => 3, "blue" => 5, "green" => 2]);
$value = $counts[$key];
$totalKeys = $counts->count();
echo "key=" . $key . "\n";
echo "value=" . $value . "\n";
echo "totalKeys=" . $totalKeys . "\n";
<?php
$key = "green";
$counts = new ArrayObject(["red" => 3, "blue" => 5, "green" => 2]);
$value = $counts[$key];
$totalKeys = $counts->count();
echo "key=" . $key . "\n";
echo "value=" . $value . "\n";
echo "totalKeys=" . $totalKeys . "\n";
$key ← red, $counts ← ArrayObject, $value ← 3, $totalKeys ← 3
1<?php2$key→ red = "red"; //@key="blue", "green"3$counts→ ArrayObject = new ArrayObject(["red" => 3, "blue" => 5, "green" => 2]);4$value→ 3 = $counts[$key]3;5$totalKeys→ 3 = $countsArrayObject->count();67echo "key=" . $keyred . "\n";8echo "value=" . $value3 . "\n";9echo "totalKeys=" . $totalKeys3 . "\n";outputkey=red value=3 totalKeys=3
$key ← blue, $counts ← ArrayObject, $value ← 5, $totalKeys ← 3
1<?php2$key→ blue = "blue";3$counts→ ArrayObject = new ArrayObject(["red" => 3, "blue" => 5, "green" => 2]);4$value→ 5 = $counts[$key]5;5$totalKeys→ 3 = $countsArrayObject->count();67echo "key=" . $keyblue . "\n";8echo "value=" . $value5 . "\n";9echo "totalKeys=" . $totalKeys3 . "\n";outputkey=blue value=5 totalKeys=3
$key ← green, $counts ← ArrayObject, $value ← 2, $totalKeys ← 3
1<?php2$key→ green = "green";3$counts→ ArrayObject = new ArrayObject(["red" => 3, "blue" => 5, "green" => 2]);4$value→ 2 = $counts[$key]2;5$totalKeys→ 3 = $countsArrayObject->count();67echo "key=" . $keygreen . "\n";8echo "value=" . $value2 . "\n";9echo "totalKeys=" . $totalKeys3 . "\n";outputkey=green value=2 totalKeys=3