stdClass

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök

Klassen stdClass

(PHP 4, PHP 5, PHP 7, PHP 8)

Introduktion

En generisk tom klass med dynamiska egenskaper.

Objekt av denna klass kan instansieras med `new`-operatorn eller skapas genom typomvandling till objekt. Flera PHP-funktioner skapar också instanser av denna klass, t.ex. `json_decode()`, `mysqli_fetch_object()` eller `PDOStatement::fetchObject()`.

Trots att den inte implementerar __get()/__set() magimetoder, tillåter denna klass dynamiska egenskaper och kräver inte attributet #[\AllowDynamicProperties].

Detta är inte en basklass eftersom PHP inte har ett koncept av en universell basklass. Det är dock möjligt att skapa en anpassad klass som utökar från stdClass och som ett resultat ärver funktionaliteten för dynamiska egenskaper.

Klassöversikt

class stdClass {
}

Denna klass har inga metoder eller standardegenskaper.

Exempel

Exempel #1 Skapad som ett resultat av typomvandling till objekt
<?php
$obj = (object) array('foo' => 'bar');
var_dump($obj);
?>

Ovanstående exempel kommer att ge något liknande:

object(stdClass)#1 (1) {
  ["foo"]=>
  string(3) "bar"
}
Exempel #2 Skapad som ett resultat av json_decode()
<?php
$json = '{"foo":"bar"}';
var_dump(json_decode($json));
?>

Ovanstående exempel kommer att ge något liknande:

object(stdClass)#1 (1) {
  ["foo"]=>
  string(3) "bar"
}
Exempel #3 Deklarera dynamiska egenskaper
<?php
$obj = new stdClass();
$obj->foo = 42;
$obj->{1} = 42;
var_dump($obj);
?>

Ovanstående exempel kommer att ge något liknande:

object(stdClass)#1 (2) {
  ["foo"]=>
  int(42)
  ["1"]=>
  int(42)
}

Sidslut

Orginalhemsidan på Engelska : https://www.php.net/manual/en/class.stdclass.php
PHP
Språkreferens
Fördefinierade Gränssnitt och Klasser


Det här är en maskinöversättning av PHP-manualen till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på https://www.linux.se/kontaka-linux-se/

Tack till Datorhjälp som har sponsrat Linux.se med webserver.