Для создания нового объекта, используйте выражение new
, создающее в переменной экземпляр класса:
<?php
class foo
{
function do_foo()
{
echo "Код foo.";
}
}
$bar = new foo;
$bar->do_foo();
?>
Полное рассмотрение производится в разделе Классы и Объекты.
Если object преобразовывается в object, объект не изменится. Если значение другого типа преобразовывается в object, создаётся новый экземпляр встроенного класса stdClass. Если значение было null
, новый экземпляр будет пустым. Массивы преобразуются в object с именами полей, названными согласно ключам массива и соответствующими им значениям. Обратите внимание, что в этом случае до PHP 7.2.0 числовые ключи не будут доступны, пока не проитерировать объект.
<?php
$obj = (object) array('1' => 'foo');
var_dump(isset($obj->{'1'})); // выводит 'bool(true)', начиная с PHP 7.2.0; 'bool(false)' ранее
var_dump(key($obj)); // выводит 'string(1) "1"', начиная с PHP 7.2.0; 'int(1)' ранее
?>
При преобразовании любого другого значения, оно будет помещено в поле с именем scalar
соответствующему типу.
<?php
$obj = (object) 'привет';
echo $obj->scalar; // выведет 'привет'
?>