Crear objeto predeterminado a partir de un valor vacío en PHP

Subodh Poudel 30 enero 2023
  1. Crear un objeto stdClass() en PHP
  2. Typecast Array en un objeto en PHP
  3. Crear objeto a partir de una clase anónima en PHP
Crear objeto predeterminado a partir de un valor vacío en PHP

Introduciremos algunos métodos para crear objetos en PHP y resolver el error creating default object from empty value.

Crear un objeto stdClass() en PHP

Cuando intentamos asignar propiedades de un objeto sin inicializar un objeto, se lanzará un error. El error dirá creando un objeto predeterminado a partir de un valor vacío. El error también depende de la configuración en el archivo php.ini. Cuando se suprime el error en la configuración, dicho script no arrojará el error. No es mejor cambiar el archivo de configuración para eliminar el error y deshacerse de él. En su lugar, podemos crear un objeto stdClass() para deshacernos del error. Cuando declaramos una variable como un objeto de stdClass() en el espacio de nombres global, podemos asignar propiedades dinámicamente a los objetos.

Por ejemplo, cree una variable $obj y establézcala en NULL. Luego, establezca la propiedad success en false con el objeto $obj. En este caso, se generará un error, como se muestra en la sección de salida. Es porque $obj no se ha inicializado como objeto.

Código de ejemplo:

$obj = NULL;
$obj->success = true;

Producción :

Warning: Creating default object from empty value

Para eliminar el error, primero asigne la variable $obj con la instancia de stdClass(). A continuación, establezca la propiedad success en true con $obj. Luego, imprima el objeto $obj usando la función print_r(). Es incluso mejor utilizar la función isset() para comprobar si $obj ya existe. Podemos ver la información sobre $obj en la sección de salida. Por tanto, podemos eliminar el error creando un objeto de stdClass().

Código de ejemplo:

$obj = new stdClass();
$obj->success =true;
print_r($obj);

Producción :

stdClass Object ( [success] => 1 ) 

Typecast Array en un objeto en PHP

Podemos encasillar un array a un objeto usando la palabra clave object antes del array. De esta forma, se puede crear el objeto. Luego, podemos asignar las propiedades al objeto. Dado que ya inicializamos el objeto, no se producirá ningún error al asignar propiedades del objeto. Este método también crea un objeto de la clase stdClass().

Por ejemplo, cree una variable $obj y asígnela a la función array(). Luego, escriba la palabra clave objeto entre paréntesis antes de array(). La matriz se ha convertido en un objeto. Luego, asigne el valor true a la propiedad success con el $obj. Finalmente, imprima el objeto con la función print_r(). De esta forma, podemos crear un objeto encasillando un array y deshacernos del error.

Código de ejemplo:

$obj = (object)array();
$obj->success =true;
print_r($obj);

Producción :

stdClass Object ( [success] => 1 ) 

Crear objeto a partir de una clase anónima en PHP

Podemos crear un objeto a partir de una clase anónima en PHP y asignarle propiedades. Podemos usar la palabra clave nueva clase para crear una clase anónima. Podemos establecer el valor de las propiedades como en la clase genérica. Dado que la propiedad tendrá una clase y podemos acceder a ella con un objeto, no se lanzará ningún error.

Por ejemplo, cree un objeto $obj y asigne una clase anónima utilizando la palabra clave new class al objeto. A continuación, cree una propiedad public $success y establezca el valor en true. Fuera de la clase, imprime el objeto con la función print_r(). De esta forma, podemos crear un objeto a partir de una clase anónima en PHP y evitar el error.

Código de ejemplo:

$obj = new class {
 public $success = true;
};
print_r($obj);

Producción :

class@anonymous Object ( [success] => 1 ) 
Subodh Poudel avatar Subodh Poudel avatar

Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.

LinkedIn

Artículo relacionado - PHP Object