Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > de.comp.lang.php > #4900
| From | Karl Pflästerer <k@rl.pflaesterer.de> |
|---|---|
| Newsgroups | de.comp.lang.php |
| Subject | Re: array[] überschreibt alle Werte |
| Date | 2023-02-10 09:10 +0100 |
| Message-ID | <m1lel6lz4u.fsf@mbp.pflaesterer.de> (permalink) |
| References | <ts4s95$lf1g$1@gwaiyur.mb-net.net> <ts4tk4$lf1g$3@gwaiyur.mb-net.net> |
Jan Novak <repcom@gmail.com> writes:
> Am 10.02.23 um 08:38 schrieb Jan Novak:
>> Hallo,
>> ich habe ein sehr seltsames Problem mit eine Grundfunktion von PHP:
>> public function getFilesFor($dir=CFG["tempdir"], $files=array(),
>> $jsonOutput=true){
>> $File2 = new File2();
>> $myRet=array();
>> foreach ($files as $file) {
>> $f=$File2->createO5File($dir."/".$file);
>> //dd ist eine debug Ausgabe mit <pre>print_r(var) </pre>
>> dd($f); // hier kommt das korrekte File2 Objekt an
>> //array_push ($myRet, $f); // das funktioniert nicht
>> $myRet[]=$f; // das auch nicht
>> dd($myRet); //hier wird zwar ein neues Objekt in das array addiert,
>> allerdings werden alle Elemente im Array mit dem letzten hinzugefügten File2
>> Objekt überschrieben
>> }
>> //das myret enthält die Anzahl der Datensätze aus der forech Schleife aber
>> alle sind die gleichen und zwar das jeweils zuletzt angefügte Element
>> return $myRet;
>> }
>> Nochmal in kurz:
>> Ich bekomme aus einer Funktion ein Objekt, welches ich in ein array addieren
>> will. Am Ende enthält das Array die korrekte Anzahl der Objekte, aber alle
>> haben die gleichen Werte wie das zuletzt hinzugefügte Objekt.
>>
>
> Kurze Ergänzung: wenn ich das File2 Objekt vor dem addieren in das myRet Array
> "dismounte" (also ein Array aus dem Objekt mache), dann klappt es und das
> myRet Array enthält korrekte Werte. Gewünscht war allerdings, dass in myRet
> File2 Objekte enthalten sind.
>
> Jan
Deine Funktion gib immer das *identische* Objekt zurück. Wenn du aus dem
Objekt ein array machst, werden die aktuellen property Werte kopiert.
Bringe die Funktion dazu, nicht jedesmal das identsicghe Objekt (mit
anderen Werten zurückzugeben), oder clone selbst
KP
Back to de.comp.lang.php | Previous | Next — Previous in thread | Next in thread | Find similar
array[] überschreibt alle Werte Jan Novak <repcom@gmail.com> - 2023-02-10 08:38 +0100
Re: array[] überschreibt alle Werte Jan Novak <repcom@gmail.com> - 2023-02-10 09:01 +0100
Gelöst: array[] überschreibt alle Werte Jan Novak <repcom@gmail.com> - 2023-02-10 09:03 +0100
Re: array[] überschreibt alle Werte Karl Pflästerer <k@rl.pflaesterer.de> - 2023-02-10 09:10 +0100
Re: array[] überschreibt alle Werte Arno Welzel <usenet@arnowelzel.de> - 2023-02-19 01:32 +0100
csiph-web