Объекты

Инициализация объекта

Новые объекты создают выражением new, которое создаёт в переменной экземпляр класса:

<?php

class foo
{
function
do_foo()
{
echo
"Код foo.";
}
}

$bar = new foo;
$bar->do_foo();

?>

Полное рассмотрение производит раздел «Классы и объекты».

Преобразование в объект

Преобразование типа object в тип object не изменит тип значения. Объект не изменится при преобразовании значения с типом object в тип object. При преобразовании значения другого типа в object PHP создаёт новый экземпляр встроенного класса stdClass. Новый экземпляр будет пустым, если значение равнялось null. Массивы преобразовываются в тип object с именами полей как у ключей массива и теми же значениями. Обратите внимание, что до PHP 7.2.0 при таком преобразовании доступ к числовым ключам появляется только при итерации объекта.

<?php

$obj
= (object) array('1' => 'foo');
var_dump(isset($obj->{'1'})); // С PHP 7.2.0 функция выводит 'bool(true)'; раньше выводила 'bool(false)'
var_dump(key($obj)); // С PHP 7.2.0 функция выводит 'string(1) "1"'; раньше выводила 'int(1)'

?>

Остальные значения при преобразовании PHP поместит в переменную-член объекта с именем scalar с исходным типом значения.

<?php

$obj
= (object) 'Привет';
echo
$obj->scalar; // Выведет 'Привет'

?>