Я ткнулся с механизмом кастования PHP и столкнулся с нечетным случаем при создании массива как объекта
$o = (object) array('1'=>'/foo/bar');
$o = new stdClass();
var_dump($o);
Как я понимаю, свойства PHP должны быть объявлены с теми же правилами, что и переменные PHP. Это Действительное имя переменной начинается с буквы или подчеркивания, за которой следует любое количество букв, цифр или символов подчеркивания. Однако приведенный выше код создает следующий выход
object(stdClass)#1 (1) {
[1]=>
string(8) "/foo/bar"
}
Там, где это действительно странно, вы пытаетесь получить доступ к этой информации в объекте.
var_dump($o->1); // parse error
var_dump($o->{'1'}); // NULL
var_dump(get_object_vars($o)); //array(0) { }
В любом случае, чтобы получить информацию о том, что отчеты var_dump находятся в объекте, или просто заблокирован для остальной части жизненного цикла запроса? (практическое использование этого - ноль, мне просто интересно)