Ein neues Objekt (Typ object) kann erstellt werden, indem mit der Anweisung new
eine Klasse instanziiert wird:
<?php
class foo
{
function do_foo()
{
echo "Mache foo.";
}
}
$bar = new foo;
$bar->do_foo();
?>
Eine ausführliche Erörterung ist im Kapitel Klassen und Objekte zu finden.
Wenn ein Objekt in ein Objekt konvertiert wird, wird es nicht verändert. Wenn ein Wert irgendeines anderen Typs in ein Objekt konvertiert wird, dann wird ein neues Exemplar der eingebauten Klasse stdClass erstellt. Wenn der Wert null
war, wird das neue Exemplar leer sein. Ein Array wird in ein Objekt konvertiert, indem die Schlüssel und Werte des Arrays zu den Namen und Werten der Eigenschaften des Objekts werden. Es ist zu beachten, dass in diesem Fall vor PHP 7.2.0 nicht auf numerische Schlüssel zugegriffen werden konnte, es sei denn, sie wurden iteriert.
<?php
$obj = (object) array('1' => 'foo');
var_dump(isset($obj->{'1'})); // Ausgabe 'bool(true)' von PHP 7.2.0 an; 'bool(false)' zuvor
var_dump(key($obj)); // Ausgabe 'string(1) "1"' von PHP 7.2.0 an; 'int(1)' zuvor
?>
Für alle anderen Werte enthält eine Member-Variable namens scalar
den Wert.
<?php
$obj = (object) 'ciao';
echo $obj->scalar; // Ausgabe 'ciao'
?>