PHP Refernzen unset Problem
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
array
code
dienst
erscheinen
folgende funktion
hilfe
komplette array
mache
mensch
null
parameter
quellcode
referenz
reihenfolge
rufen
sorte
test
url
wert paare
werte paare
-
Hi :)
ich bin auf eine Hürde gestoßen, die ich nicht alleine umwerfen kann.
Deswegen wollte ich mir Hilfe hole.
Ich habe folgende Funktion:
function readunset(&$toreadunset) { $tmp = $toreadunset; unset($toreadunset); return $tmp; }
Und rufe sie sie so auf:
$test = array( "test1" => "Hallo" ,"test2" => "Mensch" ); $mensch = readunset($test["test2"]); print_r($test); echo "Der $mensch";
Doch es kommt immer noch Hallo und Mensch raus :(
Wenn ich so mache:
$test = "hallo"; $hallo = readunset($test); echo $test;
funktioniert es auch nicht.
Was mache ich falsch :)
Danke schon mal für die Hilfe! -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Dein
zerstört nur die Referenz (unset()
), nicht aber die übergebene Variable. Die übergebene Variable kannst du so auch nicht zerstören. Was du allerdings tun kannst ist z.b.$toreadunset
zuweisen, das würde den Inhalt "zerstören".NULL
Warum willst du die Variable denn via
überhaupt zerstören?unset()
-
Weil ich das komplette array weiter bearbeiten muss.
Aber die keys die ich ausgelesen habe nicht mehr erscheinen dürfen.
Auch keine Null.
Der KEy darf einfach nicht mehr erscheinen.
Also gibt es keine Möglichkeit wie in C++?
Beitrag zuletzt geändert: 9.1.2015 12:22:02 von willstdueswissen -
k
willstdueswissen schrieb:
Nein. Außerdem wär da noch die Frage: bei welcher Sorte von Array kannst du das denn in C++?
Also gibt es keine Möglichkeit wie in C++?
Aber: du könntest das Array an die Funktion übergeben und zusätzlich den Key. Dann kannst du aus dem Array löschen was du willst und einfügen was du willst, und durch den Key weißt du auch wo du das willst … im Übrigen sieht es so aus, also ob du irgendwas Stack-Artiges bauen wollen würdest oder foreach nutzen wolltest (was beides anders sinnvoller umsetzbar ist).
Beitrag zuletzt geändert: 9.1.2015 14:19:54 von hackyourlife -
In C++ kannst du über eine Refernez auch keine Varibalen löschen.
Nur zum Verständnis, php hat ein anderes array Konzept als C++, in php ist ein Array immer eine Hashmap, also nur Schlüssel Wert Paare (Die Refernzierung erfolgt über ein Hashverfahren, aber das nicht so wichtig)und es gibt eine Reihenfolge.
Du kannst Werte Paare löschen, in der Reihenfolge verschieben, einfach mal hier gucken http://php.net/manual/de/ref.array.php -
muellerlukas schrieb:
Was den quellcode angeht: da denke ich auch, dass es schicker geht.
Ja geht es ;) musste nur schnell ne lösung her bevor ich das Programm umschreibe ;)
Sonst wäre ein Dienst die ganze Zeit down.
Habe es dann erstmal wie hackyourlife gemacht.
Jetzt habe ich aber schon fasst umgeschrieben. ^^ danke euch.
In c++gibt es ja nicht nur Referenz sondern auch Pointer.
Ich meine ich könnte mich entsinnen, das es damit möglich wäre.
Könnte mich aber täuschen.
MfG willstdueswissen -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage