Créer un objet par défaut à partir d'une valeur vide en PHP

Subodh Poudel 30 janvier 2023
  1. Créer un objet stdClass() en PHP
  2. Typecast Array In Object en PHP
  3. Créer un objet à partir d’une classe anonyme en PHP
Créer un objet par défaut à partir d'une valeur vide en PHP

Nous allons présenter quelques méthodes pour créer des objets en PHP et résoudre l’erreur creating default object from empty value.

Créer un objet stdClass() en PHP

Lorsque nous essayons d’affecter les propriétés d’un objet sans initialiser un objet, une erreur sera renvoyée. L’erreur dira creating default object from empty value. L’erreur dépend aussi de la configuration dans le fichier php.ini. Lorsque l’erreur est supprimée dans la configuration, un tel script ne lancera pas l’erreur. Il n’est pas préférable de modifier le fichier de configuration pour supprimer l’erreur afin de s’en débarrasser. Au lieu de cela, nous pouvons créer un objet stdClass() pour éliminer l’erreur. Lorsque nous déclarons une variable en tant qu’objet de la stdClass() dans l’espace de noms global, nous pouvons affecter dynamiquement des propriétés aux objets.

Par exemple, créez une variable $obj et définissez-la sur NULL. Ensuite, définissez la propriété success sur false avec l’objet $obj. Dans ce cas, une erreur sera renvoyée, comme indiqué dans la section de sortie. C’est parce que $obj n’a pas été initialisé en tant qu’objet.

Exemple de code :

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

Production :

Warning: Creating default object from empty value

Pour éliminer l’erreur, affectez d’abord la variable $obj avec l’instance de stdClass(). Ensuite, définissez la propriété success sur true avec le $obj. Ensuite, imprimez l’objet $obj à l’aide de la fonction print_r(). Il est encore mieux d’utiliser la fonction isset() pour vérifier si $obj existe déjà. Nous pouvons voir les informations sur $obj dans la section de sortie. Ainsi, nous pouvons éliminer l’erreur en créant un objet de stdClass().

Exemple de code :

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

Production :

stdClass Object ( [success] => 1 ) 

Typecast Array In Object en PHP

Nous pouvons transtyper un tableau vers un objet en utilisant le mot-clé object avant le tableau. De cette façon, l’objet peut être créé. Ensuite, nous pouvons affecter les propriétés à l’objet. Puisque nous avons déjà initialisé l’objet, aucune erreur ne sera générée lors de l’attribution des propriétés de l’objet. Cette méthode crée également un objet de la classe stdClass().

Par exemple, créez une variable $obj et affectez-la à la fonction array(). Ensuite, écrivez le mot-clé object entre parenthèses avant array(). Le tableau a été converti en objet. Ensuite, attribuez la valeur true à la propriété success avec le $obj. Enfin, imprimez l’objet avec la fonction print_r(). De cette façon, nous pouvons créer un objet en transtypant un tableau et éliminer l’erreur.

Exemple de code :

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

Production :

stdClass Object ( [success] => 1 ) 

Créer un objet à partir d’une classe anonyme en PHP

Nous pouvons créer un objet à partir d’une classe anonyme en PHP et lui attribuer des propriétés. Nous pouvons utiliser le mot-clé new class pour créer une classe anonyme. Nous pouvons définir la valeur des propriétés comme dans la classe générique. Étant donné que la propriété aura une classe et que nous pouvons y accéder avec un objet, aucune erreur ne sera renvoyée.

Par exemple, créez un objet $obj affectez une classe anonyme en utilisant le mot-clé nouvelle classe à l’objet. Créez ensuite une propriété public $success et définissez la valeur sur true. En dehors de la classe, imprimez l’objet avec la fonction print_r(). De cette façon, nous pouvons créer un objet à partir d’une classe anonyme en PHP et éviter l’erreur.

Exemple de code :

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

Production :

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

Article connexe - PHP Object