Новые объекты создают выражением
new, которое создаёт в переменной экземпляр класса:
Пример #1 Создание объекта
<?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 при таком преобразовании доступ к числовым ключам
появляется только при итерации объекта.
Пример #2 Приведение к объекту
<?php
$obj = (object) array('1' => 'foo');
var_dump(isset($obj->{'1'})); // Выводит 'bool(true)'
// Начиная с PHP 8.1 вызов функции key() на объектах устарел
var_dump(key($obj)); // Выводит 'string(1) "1"'
?>
Остальные значения при преобразовании PHP поместит
в переменную-член объекта с названием scalar с исходным типом значения.
Пример #3 Преобразование в объект через приведение типа (object)
<?php
$obj = (object) 'Привет';
echo $obj->scalar; // Выводит 'Привет'
?>