Sua solução pode funcionar ..
A documentação especifica que (object) null
resultará em um objeto vazio, alguns podem dizer que seu código é válido e que é o método a ser usado.
PHP: Objetos - Manual
Se um valor de qualquer outro tipo for convertido em um objeto, uma nova instância da classe interna stdClass será criada. Se o valor for NULL, a nova instância estará vazia.
.. mas, tente mantê-lo seguro!
Embora você nunca saiba quando / se o item acima vai mudar, então, se quiser ter 100% de certeza de que sempre terminará com um {}
em seus dados codificados, você pode usar um hack como:
json_encode (json_decode ("{}"));
Mesmo que seja tedioso e feio, eu presumo / espero que json_encode / json_decode seja compatível com um e outro e sempre irá avaliar o seguinte como verdadeiro:
$a = <something>;
$a === json_decode (json_encode ($a));
Método recomendado
json_decode ("{}")
retornará um stdClass
por padrão, usando o abaixo deve, portanto, ser considerado seguro. Embora, como mencionado, seja praticamente a mesma coisa que fazer (object) null
.
json_encode (new stdClass);