php crea objeto sin clase [duplicate]

2 minutos de lectura

avatar de usuario
Wolfgang Adamec

En JavaScript, puede crear fácilmente un objeto sin una clase:

 myObj = {};
 myObj.abc = "aaaa";

Para PHP encontré este, pero tiene casi 4 años:
http://www.subclosure.com/php-creating-anonymous-objects-on-the-fly.html

$obj = (object) array('foo' => 'bar', 'property' => 'value');

Ahora con PHP 5.4 en 2013, ¿hay alguna alternativa a esto?

  • Verifique esta respuesta: stackoverflow.com/a/6384474/1606729

    – koopajah

    18 de enero de 2013 a las 9:14

  • $obj = (objeto)[]; $obj->someProp = “hola chico”;

    – AlFra

    13 mayo 2016 a las 10:26

  • Las matrices asociativas anidadas de PHP pueden ser un buen reemplazo para los objetos JS anidados dependiendo de lo que intente hacer.

    – Kennsorr

    10 mayo 2019 a las 15:22

avatar de usuario
artem l

siempre puedes usar new stdClass(). Código de ejemplo:

   $object = new stdClass();
   $object->property = 'Here we go';

   var_dump($object);
   /*
   outputs:

   object(stdClass)#2 (1) {
      ["property"]=>
      string(10) "Here we go"
    }
   */

También a partir de PHP 5.4 puede obtener el mismo resultado con:

$object = (object) ['property' => 'Here we go'];

  • +1 para el método PHP 5.4, esto hace que el código sea más corto y más legible, especialmente cuando tiene varios elementos para agregar al objeto.

    – Marcos

    17 de febrero de 2016 a las 10:11

  • Si está buscando convertir una matriz anidada en un objeto, le recomiendo usar json_decode(json_encode($array)) que convertirá toda la matriz en un objeto stdClass anidado. Si utiliza (object) $array solo convertirá la primera capa en un objeto, todo lo anidado dentro seguirá siendo una matriz.

    – David Routen

    02/03/2018 a las 20:29

  • Otra forma, usando json_decode único, es pasar una cadena JSON: $object = json_decode(‘{“property”: {“foo”: “bar”}, “hello”: “world”}’);

    – nr

    14/03/2018 a las 21:58

  • @DavidRouten Eso fue muy, muy útil. Gracias.

    – Ryan

    26 mayo 2018 a las 15:35

  • @DavidRouten Parece que PHP7.4 (¿o incluso anterior?) ahora también crea objetos anidados cuando usa (objeto) $ matriz.

    – nr

    22 de septiembre de 2020 a las 8:14

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad