Ich bin ein neuer Benutzer von PHP aus C++/Python/Java. In PHP gibt es einen eingebauten Array-Typ, wie kann ich beweisen, dass das Array das gleiche Array ist, nachdem ich ein neues Objekt in das Array eingefügt habe oder eine Kopie des alten? In C++/Python/Java kann ich die Objektadresse, ID() oder Hashcode verwenden, um zu testen, ob das Objekt identisch ist, wie kann ich den gleichen Test in PHP machen?Wie kann ich die Adresse eines Arrays erhalten?
<?php
$a['0'] = "a";
$a['1'] = 'b'; //here, $a is a new copied one or just a reference to the old?
?>
OK, ich aktualisiere meine Frage, eigentlich gibt es kein spezifisches Problem. Ich möchte nur wissen, ob das Array-Objekt vor und nach dem Einfügen neuer Werte gleich bleibt. In Python, ich könnte ein Test wie diese machen:
a = [1]
print id(a)
a.append(2)
print id(a)
BTW, ist dies die Funktion id() manuell in Python.
id(...)
id(object) -> integer
Return the identity of an object. This is guaranteed to be unique among
simultaneously existing objects. (Hint: it's the object's memory address.)
-Code aktualisiert:
# -*- coding: utf-8 -*-
a = [1, 2, 3]
b = [1, 2, 3]
print id(a)
print id(b) //the id(b) is not same as id(a), so a and b has same content, but they both own their own values in the memory
c = a // c is a reference to a
c.append(4)
print c
print a //after appending a new value(which means insert a new value to array), a has same value as c
so das Problem ist ich das Speicherlayout von Code sowohl in C++/Python/Java unter Beweis stellen kann, möchte ich sicherstellen, wenn ich das gleiche tun kann PHP.
Welches Problem müssen Sie lösen? Ihr Code gibt nicht viele Hinweise ... Klingt merkwürdig, dass C++ ein völlig neues Array erstellt, wenn Sie ein Element anfügen: -? –
Ich weiß nichts über C++/Python/Java, aber in PHP ist das Array das gleiche, wenn Sie ein neues Element hinzufügen. – Epodax
PHP hat keinen solchen Mechanismus. Sie müssen beschreiben, welches Problem Sie lösen möchten, um eine geeignete Vorgehensweise in PHP vorzuschlagen. – deceze