<?php
error_reporting(E_ALL);
ini_set('display_errors', true);
// DOC_ROOT для тестирования из www или из консоли.
define('DOC_ROOT', !empty($_SERVER['DOCUMENT_ROOT']) ? dirname($_SERVER['DOCUMENT_ROOT']) : dirname(dirname(dirname(dirname(__FILE__)))));
require(DOC_ROOT . '/lib/classes/Cover/Array.php');
// Тесты возможностей класса Cover_Array.
echo "> Content var \$array type of Cover_Array:\n";
$array = new Cover_Array( array('foo', 12345, 'element' => array('key' => 'value', 'key2' => 'value2')) );
print_r($array);
echo "\n\n";
echo "> echo \$array->item(0);\n";
echo $array->item(0); // foo
echo "\n\n";
echo "> echo \$array->element->key;\n";
echo $array->element->key; // value
echo "\n\n";
echo "> echo \$array['element']['key'];\n";
echo $array['element']['key']; // value
echo "\n\n";
echo "> echo \$array->element->count();\n";
echo $array->element->count(); // 2
echo "\n\n";
echo "> echo \$array->element->append('Hellow, PHP!')->item(0);\n";
echo $array->element->append('Hellow, PHP!')->item(0); // Hellow, PHP!
echo "\n\n";
echo "> echo \$array->element->count();\n";
echo $array->element->count(); // 3
echo "\n\n";
echo "> print_r(\$array->getDataAsArray());\n";
print_r($array->getDataAsArray()); // получаем обычный массив
echo "\n\n";
echo "> foreach by \$array->element:\n";
foreach ($array->element as $key => $value) {
echo "$key => $value \n";
}
echo "\n\n";
echo "> \$array->is_array = array(1, 2, 3);\n";
echo "> print_r(\$array->is_array);\n";
$array->is_array = array(1, 2, 3);
print_r($array->is_array); // Cover_Array Object ( [data:protected] => Array ( [0] => 1 [1] => 2 [2] => 3 ) )
echo "\n";
echo "> var_dump(\$array->non_exists_prop);\n";
var_dump($array->non_exists_prop); // NULL, никаких Notice
echo "\n";
echo "> print_r(\$array['non_exists_prop']);\n";
print_r($array['non_exists_prop']); // Cover_Array Object
echo "\n\n";
echo "> \$array['non_exists_prop']['non_exists_prop']['property'] = true;\n";
echo "> print_r(\$array['non_exists_prop']);\n";
$array['non_exists_prop']['non_exists_prop']['property'] = true;
print_r($array['non_exists_prop']); // создалась цепочка вложенных массивов
echo "> echo \$array['non_exists_prop']['non_exists_prop'];\n";
echo $array['non_exists_prop']['non_exists_prop']; // string ''
echo "\n\n";