Objekt
Objekt
Objekt
Objektinitialisering
För att skapa ett nytt objekt, använd nytt-uttalandet för att instansiera en klass:
Om ett objekt konverteras till ett objek
<?php
class foo
{
function do_foo()
{
echo "Doing foo.";
}
}
$bar = new foo;
$bar->do_foo();
?>
<?php
$obj = (object) array('1' => 'foo');
var_dump(isset($obj->{'1'})); // ger ut 'bool(true)' från och med PHP 7.2.0; 'bool(false)' tidigare
var_dump(key($obj)); // ger ut 'string(1) "1"' från och med PHP 7.2.0; 'int(1)' tidigare
?>
För en fullständig diskussion, se kapitlet om Klasser och Objekt.
Konvertera till objekt
Om ett objekt konverteras till ett objekt, modifieras det inte. Om ett värde av någon annan typ konverteras till ett objekt skapas en ny instans av den inbyggda klassen stdClass. Om värdet var null kommer den nya instansen att vara tom. En array konverteras till ett objekt med egenskaper namngivna efter nycklar och motsvarande värden. Observera att i detta fall före PHP 7.2.0 har numeriska nycklar varit otillgängliga såvida de inte itereras.
<?php
$obj = (object) array('1' => 'foo');
var_dump(isset($obj->{'1'})); // ger ut 'bool(true)' från och med PHP 7.2.0; 'bool(false)' tidigare
var_dump(key($obj)); // ger ut 'string(1) "1"' från och med PHP 7.2.0; 'int(1)' tidigare
?>
För något annat värde kommer en medlemsvariabel med namnet scalar att innehålla värdet.
<?php
$obj = (object) 'ciao';
echo $obj->scalar; // ger ut 'ciao'
?>