Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-Objekt-zu-Array-Funktion

PHP-Objekt-zu-Array-Funktion

王林
王林Original
2019-08-31 17:46:366028Durchsuche

PHP-Objekt-zu-Array-Funktion

Für das Objekt in PHP, auf das Sie in Form eines Arrays zugreifen möchten, müssen Sie die Funktion get_object_vars() verwenden. Lassen Sie uns zunächst diese Funktion vorstellen.

Die offizielle Dokumentation erklärt es so:

array get_object_vars ( object $obj )

Gibt ein assoziatives Array zurück, das aus Eigenschaften besteht, die in dem durch obj angegebenen Objekt definiert sind.

Beispiel:

<?php
class Point2D {
  var $x, $y;
  var $label;
  function Point2D($x, $y)
  {
    $this->x = $x;
    $this->y = $y;
  }
  function setLabel($label)
  {
    $this->label = $label;
  }
  function getPoint()
  {
    return array("x" => $this->x,
           "y" => $this->y,
           "label" => $this->label);
  }
}
// "$label" is declared but not defined
$p1 = new Point2D(1.233, 3.445);
print_r(get_object_vars($p1));
$p1->setLabel("point #1");
print_r(get_object_vars($p1));
?>

Ausgabe:

Array
 (
     [x] => 1.233
     [y] => 3.445
     [label] =>
 )
 Array
 (
     [x] => 1.233
     [y] => 3.445
     [label] => point #1
 )

Objekt-zu-Array-spezifische Implementierung:

function objectToArray($obj) {
  //首先判断是否是对象
  $arr = is_object($obj) ? get_object_vars($obj) : $obj;
  if(is_array($arr)) {
    //这里相当于递归了一下,如果子元素还是对象的话继续向下转换
    return array_map(__FUNCTION__, $arr);
  }else {
    return $arr;
  }
}

Konkrete Implementierung der Konvertierung eines Arrays in ein Objekt:

function arrayToObject($arr) {
  if(is_array($arr)) {
    return (object)array_map(__FUNCTION__, $arr);
  }else {
    return $arr;
  }
}

Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website: PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonPHP-Objekt-zu-Array-Funktion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn