Новые объекты создают выражением
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; // Выведет 'Привет'
?>