Objetos

Inicialização de objetos

Para criar um novo object, utilize a instrução new para instanciar uma classe:

<?php
class foo
{
    function do_foo()
    {
        echo "Doing foo.";
    }
}

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

Para uma discussão completa, veja o capítulo Classes e Objetos.

Convertendo para objetos

Se um object é convertido para um object, ele não é modificado. Se um valor de qualquer outro tipo é convertido para um object, uma nova instância da classe interna stdClass é criada. Se o valor for null, a nova instância será vazia. Um array é convertido para um object com as propriedades nomeadas pelas chaves e os valores correspondentes, com exceção de chaves numéricas que ficarão inacessíveis a menos que sejam iteradas.

<?php
$obj = (object) array('1' => 'foo');
var_dump(isset($obj->{'1'})); // exibe 'bool(true)' a partir do PHP 7.2.0; antes exibia 'bool(false)'
var_dump(key($obj)); // exibe 'string(1) "1"' a partir do PHP 7.2.0; antes exibia 'int(1)'
?>

Para qualquer outro valor, uma propriedade chamada scalar conterá o valor.

<?php
$obj = (object) 'ciao';
echo $obj->scalar;  // exibe 'ciao'
?>