Erstellen ein Standardobjekt aus einem leeren Wert in PHP
-
Erstellen ein
stdClass()
-Objekt in PHP - Typecast-Array in Objekt in PHP
- Erstellen ein Objekt aus einer anonymen Klasse in PHP
Wir werden einige Methoden zum Erstellen von Objekten in PHP und zum Beheben des Fehlers creating default object from empty value
vorstellen.
Erstellen ein stdClass()
-Objekt in PHP
Wenn wir versuchen, einem Objekt Eigenschaften zuzuweisen, ohne ein Objekt zu initialisieren, wird ein Fehler ausgegeben. Die Fehlermeldung lautet Standardobjekt aus leerem Wert erstellen
. Der Fehler hängt auch von der Konfiguration in der Datei php.ini
ab. Wenn der Fehler in der Konfiguration unterdrückt wird, wird ein solches Skript den Fehler nicht auslösen. Es ist nicht besser, die Konfigurationsdatei zu ändern, um den Fehler zu unterdrücken, um ihn zu beseitigen. Stattdessen können wir ein stdClass()
-Objekt erstellen, um den Fehler zu beheben. Wenn wir eine Variable als Objekt der stdClass()
im globalen Namensraum deklarieren, können wir den Objekten dynamisch Eigenschaften zuweisen.
Erstellen Sie beispielsweise eine Variable $obj
und setzen Sie diese auf NULL
. Setzen Sie dann die Eigenschaft success
mit dem Objekt $obj
auf false
. In diesem Fall wird ein Fehler ausgegeben, wie im Ausgabeabschnitt gezeigt. Dies liegt daran, dass $obj
nicht als Objekt initialisiert wurde.
Beispielcode:
$obj = NULL;
$obj->success = true;
Ausgabe:
Warning: Creating default object from empty value
Um den Fehler zu beheben, weisen Sie zunächst der Variablen $obj
die Instanz von stdClass()
zu. Als nächstes setzen Sie die Eigenschaft success
mit $obj
auf true
. Drucken Sie dann das Objekt $obj
mit der Funktion print_r()
. Noch besser ist es mit der Funktion isset()
zu prüfen, ob $obj
bereits existiert. Wir können die Informationen zu $obj
im Ausgabeabschnitt sehen. Somit können wir den Fehler beheben, indem wir ein Objekt von stdClass()
erstellen.
Beispielcode:
$obj = new stdClass();
$obj->success =true;
print_r($obj);
Ausgabe:
stdClass Object ( [success] => 1 )
Typecast-Array in Objekt in PHP
Wir können ein Array in ein Objekt umwandeln, indem wir das Schlüsselwort object
vor dem Array verwenden. Auf diese Weise kann das Objekt erstellt werden. Dann können wir dem Objekt die Eigenschaften zuweisen. Da wir das Objekt bereits initialisiert haben, wird beim Zuweisen von Eigenschaften des Objekts kein Fehler ausgegeben. Diese Methode erzeugt auch ein Objekt der Klasse stdClass()
.
Erstellen Sie beispielsweise eine Variable $obj
und weisen Sie diese der Funktion array()
zu. Schreiben Sie dann das Schlüsselwort object
in Klammern vor array()
. Das Array wurde in ein Objekt umgewandelt. Weisen Sie dann der Eigenschaft success
mit $obj
den Wert true
zu. Drucken Sie zum Schluss das Objekt mit der Funktion print_r()
. Auf diese Weise können wir ein Objekt erstellen, das ein Array typumwandelt und den Fehler beheben.
Beispielcode:
$obj = (object)array();
$obj->success =true;
print_r($obj);
Ausgabe:
stdClass Object ( [success] => 1 )
Erstellen ein Objekt aus einer anonymen Klasse in PHP
Wir können ein Objekt aus einer anonymen Klasse in PHP erstellen und ihm Eigenschaften zuweisen. Wir können das Schlüsselwort new class
verwenden, um eine anonyme Klasse zu erstellen. Wir können den Wert der Eigenschaften wie in der generischen Klasse festlegen. Da die Eigenschaft eine Klasse hat und wir mit einem Objekt darauf zugreifen können, wird kein Fehler ausgegeben.
Erstellen Sie beispielsweise ein Objekt $obj
, weisen Sie dem Objekt mit dem Schlüsselwort new class
eine anonyme Klasse zu. Erstellen Sie dann eine public
Eigenschaft $success
und setzen Sie den Wert auf true
. Außerhalb der Klasse drucken Sie das Objekt mit der Funktion print_r()
. Auf diese Weise können wir in PHP ein Objekt aus einer anonymen Klasse erstellen und den Fehler verhindern.
Beispielcode:
$obj = new class {
public $success = true;
};
print_r($obj);
Ausgabe:
class@anonymous Object ( [success] => 1 )
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