Frage

In Java und C ++, wenn wir nicht wissen, die Größe -. Array verwendet wird, nicht wie in PHP, stattdessen verwendet VerketteteListe etc

In PHP existieren SPL, aber die meisten der Zeit Programmierer verwenden Array, warum (weil die Leute über SPL nicht kennen)?

Wenn wir Array in PHP und whenSPL und was ist der Unterschied in diesem Fall zwischen PHP und Java / C ++?

verwenden sollten
War es hilfreich?

Lösung

Jede PHP Anfrage müssen alle Variablen initialisiert werden und nach Wunsch sie befreit werden. Denn das von nicht kommt oft Situationen, in denen spezielle Datenstrukturen (wie maxheap, VerketteteListe oder queue) sind effizienter als Array. Auch Arrays sind viel einfacher zu verstehen und zu verwenden für Anfänger.

Differenz von C ++ in PHP ist, dass Arrays Länge dynamisch ist. Sie können Elemente hinzufügen, wann immer Sie wollen.

$arr=array();
$arr[]=5; //add integer to array
echo count($arr); //1
$arr[]=7;
echo count($arr); //2

können Sie dynamisch erstellen und fügen Sie Array zu einem anderen Array

$arr[]=array();
$arr[2][]=5;
echo count($arr); //3
echo count($arr[2]); //1

Das neue Array erstellen, fügen Element mit dem Wert 5 und fügen Sie es als Element Array $ arr.

$arr[][]=5;

In PHP-Arrays sind Hash-Tabellen, so dass Sie nicht nur Integer-Schlüssel haben können, sondern auch Strings:

$arr['somekey']='somevalue';

Wenn Array-Element ist integer dann erfordert jedes Element einen Wert Struktur (zval), die 16 Bytes führt. Auch erfordert einen Hash-Bucket - das 36 Bytes führt. Das gibt 52 Bytes pro Wert. Speicherzuweisung Header nehmen weitere 8 Bytes 2. * - die 68 Bytes gibt

Über Arrays in PHP: http://oreilly.com/catalog/progphp/ Kapitel- / ch05.html

Andere Tipps

Sie fragen uns zwei vergleichen massiv verschiedene Dinge, fast die einzige Ähnlichkeit ist, dass sie beide (Arrays und die SPL) in PHP sind.

Zu diesem Zweck wäre es im Wesentlichen unsinnig, direkt zu vergleichen, oder zu verschreiben, wenn man sollte über die anderen für Zeiten verwendet werden, wenn beide verwendet werden könnten, um eine Aufgabe zu erfüllen. In diesem Sinne, beide kann verwendet werden, miteinander verflochten. B. mit dem ArrayIterator iterieren einem Array oder dem ArrayObject zu nutzen Array-Stil Syntax, wenn die Arbeit mit Objekten

Sie scheinen auch verwechselt werden, oder einfach nur unklar, was die SPL ist; es sicherlich nicht zu Tool über Sammlungen von Dingen zu Iterierte eingeschränkt verwendet. Meinen Sie bestimmte Teile der Bibliothek zu fragen, oder sind Sie vielleicht nur unklar, welche in dieser verfügbar ist?

Verwenden Sie Standard-Arrays, es ist schneller als Arrayobject.

Verwenden Arrayobject nur Ihre eigene angegebene Arrays mit benutzerdefinierten Methoden zu implementieren.

Nicht necessarilly eine Verwirrung vielleicht, weil die Menschen entscheiden können „SplStack“ anstelle von Vanille-Array mit array_push assoziiert verwenden / Pop-Funktionen. Oder nutzen Sie Arrays in klassischen Art und Weise,

und dann gibt es SplDoublyLinkedList, SplQueue, SplHeap. Plus Arrayobject.

Die Frage ist also gültig. Und die Antwort lautet:. Sie in einer javaish Weise das gleiche zu tun, und es ist langsamer

SPL allgemein gesprochen ist ein vorläufige zu imitieren Standard & "off-the-shelf" Klassen und API, wie es existiert in C ++ und Java.

IMHO es kam zu spät.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top