Объекты
Инициализация объекта
Для создания нового объекта, используйте выражение
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(false)'
var_dump(key($obj)); // выводит 'int(1)'
$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; // выведет 'привет'
?>