Suchen
Inside Forum
Nützliche Links




 
phpforum.de bei Facebook
 
phpforum.de bei Twitter
 

Zurück   PHP Forum: phpforum.de > PHP > PHP

PHP Alles rund um PHP

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 03.04.2018, 12:07
traraaaa traraaaa ist offline
Besucher
 
Registriert seit: 30.03.2011
Beiträge: 64
Standard Unterschied zwischen Array und Objekt

Was mir beim programmieren in PHP immer wieder Schwierigkeiten bereitet, ist die Unterscheidung zwischen Arrays und Objekten, geschweige denn Klassen.

So habe ich vor einigen Monaten ein PHP-Skript erstellt, dass aus JSON Daten ausliest und in die Datenbank speichert. Die einzelnen JSON Elemente werden als Array erkannt und alles läuft prima.

Jetzt habe ich eine zweite JSON Quelle mit sehr ähnlicher Struktur und habe das vorhandene PHP Skript dupliziert und leicht angepasst. Was mich überrascht hat, war die Feststellung, dass die einzelnen Elemente nicht als Array, sondern ein Objekt vorliegen (mit `var_dump` herausgefunden). Wie kann ich besser erkennen, wann JSON Daten als Array und wann als Objekt vorliegen.

Was mich halt ständig nervt und ärgert ist die Unklarheit, wann man von einem normalen Array, einem assoziativen Array und wann von einem Objekt spricht und wo inhaltlich der Unterschied ist. Oder noch drastischer formuliert: wozu braucht man eigentlich Objekte, wenn es doch schon Arrays gibt?
Mit Zitat antworten
  #2  
Alt 03.04.2018, 12:09
hellbringer hellbringer ist offline
Forum-Mitarbeiter
 
Registriert seit: 27.03.2008
Beiträge: 31.029
Standard AW: Unterschied zwischen Array und Objekt

Die Daten sollten sich an eine vorgegebene Struktur halten. Wenn du Arrays erwartest, aber ein JSON mit Objekten geliefert wird, solltest du das zurückschmeißen und demjenigen sagen, dass er dir ein gültiges JSON liefern soll.

Bei JSON ist die Unterscheidung übrigens kanns simpel:

[] => Array
{} => Objekt
Mit Zitat antworten
  #3  
Alt 03.04.2018, 12:18
traraaaa traraaaa ist offline
Besucher
 
Registriert seit: 30.03.2011
Beiträge: 64
Standard AW: Unterschied zwischen Array und Objekt

Zitat:
Zitat von hellbringer Beitrag anzeigen
Bei JSON ist die Unterscheidung übrigens kanns simpel:

[] => Array
{} => Objekt
Habe mir gleich die beiden JSON angeschaut. Jetzt wird mir klar, warum das eine Skript läuft und das andere nicht: beim Ersten sind die Daten in [] gepackt, beim Zweiten in {}. Dies hilft mir schon mal zu verstehen, warum das zweite Skript nicht richtig funktionierte.

Wenn mir jetzt noch jemand verständlich erklären würde, was der Sinn von Objekten ist, wäre ich dankbar.
Mit Zitat antworten
  #4  
Alt 03.04.2018, 12:26
hellbringer hellbringer ist offline
Forum-Mitarbeiter
 
Registriert seit: 27.03.2008
Beiträge: 31.029
Standard AW: Unterschied zwischen Array und Objekt

Zitat:
Zitat von traraaaa Beitrag anzeigen
Wenn mir jetzt noch jemand verständlich erklären würde, was der Sinn von Objekten ist, wäre ich dankbar.
Arrays sind eine Liste an Werten. Also z.B. ['foo','bar','baz']

Objekte haben Eigenschaften mit Werten: {'foo':1,'bar':2,'baz':3}
Mit Zitat antworten
  #5  
Alt 03.04.2018, 12:38
traraaaa traraaaa ist offline
Besucher
 
Registriert seit: 30.03.2011
Beiträge: 64
Standard AW: Unterschied zwischen Array und Objekt

Zitat:
Zitat von hellbringer Beitrag anzeigen
Objekte haben Eigenschaften mit Werten: {'foo':1,'bar':2,'baz':3}
Hmmm.... ich dachte, das wären die assoziative Arrays?
Mit Zitat antworten
  #6  
Alt 03.04.2018, 13:09
hellbringer hellbringer ist offline
Forum-Mitarbeiter
 
Registriert seit: 27.03.2008
Beiträge: 31.029
Standard AW: Unterschied zwischen Array und Objekt

Zitat:
Zitat von traraaaa Beitrag anzeigen
Hmmm.... ich dachte, das wären die assoziative Arrays?
Sowas gibt es bei JavaScript und somit auch bei JSON nicht.
Mit Zitat antworten
  #7  
Alt 03.04.2018, 13:13
traraaaa traraaaa ist offline
Besucher
 
Registriert seit: 30.03.2011
Beiträge: 64
Standard AW: Unterschied zwischen Array und Objekt

Zitat:
Zitat von hellbringer Beitrag anzeigen
Sowas gibt es bei JavaScript und somit auch bei JSON nicht.
Das ist ja ganz schön verwirrend.
Mit Zitat antworten
  #8  
Alt 03.04.2018, 13:25
hellbringer hellbringer ist offline
Forum-Mitarbeiter
 
Registriert seit: 27.03.2008
Beiträge: 31.029
Standard AW: Unterschied zwischen Array und Objekt

Zitat:
Zitat von traraaaa Beitrag anzeigen
Das ist ja ganz schön verwirrend.
Naja, sind halt verschiedene Programmiersprachen.
Mit Zitat antworten
  #9  
Alt 03.04.2018, 13:28
traraaaa traraaaa ist offline
Besucher
 
Registriert seit: 30.03.2011
Beiträge: 64
Standard AW: Unterschied zwischen Array und Objekt

Dann sind also die sogenannten assoziativen Arrays bei PHP das gleiche wie Objekte bei JSON? - Falls ja: was sind dann Objekte bei PHP?
Mit Zitat antworten
  #10  
Alt 03.04.2018, 13:55
hellbringer hellbringer ist offline
Forum-Mitarbeiter
 
Registriert seit: 27.03.2008
Beiträge: 31.029
Standard AW: Unterschied zwischen Array und Objekt

Zitat:
Zitat von traraaaa Beitrag anzeigen
Dann sind also die sogenannten assoziativen Arrays bei PHP das gleiche wie Objekte bei JSON? - Falls ja: was sind dann Objekte bei PHP?
Nein. Bei PHP sind Arrays eierlegende Wollmilchsäue. Sie sind sehr vielfältig verwendbar, mit allen Vor- und Nachteilen. Unter JavaScript ist ein Array recht eingeschränkt.

Objekte können sowohl Eigenschaften als auch Methoden haben. Außerdem werden Objekte als eine Art Referenz (genauer gesagt der Objekt-Identifier) übergeben. Beispiel:

PHP Quellcode:
$array = ['foo' => 1, 'bar' => 2];
$object = (object)$array;

$arrayCopy = $array;
$arrayCopy['foo'] = 3;
echo $array['foo'];
// 1

$objectCopy = $object;
$objectCopy->foo = 3;
echo $object->foo;
// 3
Mit Zitat antworten


Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu
Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Unterschied zwischen $tmp und$tmp. masjmh PHP 3 12.12.2007 16:08
Was ist der Unterschied zwischen... Pickarott Datenbanken 2 07.07.2006 14:08
Unterschied zwischen ".$var." und {$var} pflanzerus PHP 5 03.02.2006 11:19
Unterschied zwischen e und E Hummel PHP 2 03.09.2004 10:05
Unterschied zwischen Php und Jsp? Claudia Rehbein PHP 3 02.03.2004 10:05


Alle Zeitangaben in WEZ +2. Es ist jetzt 18:31 Uhr.


Powered by vBulletin® Version 3.8.8 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Powered by NuWiki v1.3 RC1 Copyright ©2006-2007, NuHit, LLC