Sinnloser Fehler
Andü
- php
Kämpf mit einem relativ sinnlosen Problem:
Fatal error: Cannot use assign-op operators with overloaded objects nor string offsets in...
Dieser Fehler kommt immer nur dann, wenn ich die Funktion preg_replace("#$string2#","bla",$string); verwende. Sobald ich aber die #-Zeichen weglass erscheint der Fehler nicht mehr - bloß meine $string2 wurde halt auch nicht ersetzt.
Das sinnlose an dem Problem ist, dass der Fehlerverweis auf eine Zeile zeigt die in etwa so aussieht $text.=$text2. Sobald ich sie aber $text=$text+$text2 schreib funktioniert sie. Die erste Schreibweise verwende ich bloß ziemlich oft - d.h. Änderung wäre ziemlich aufwendig.
Gibt es für dieses Problem eine sinnvolle Erklärung/Lösung? Ich hab keine...
Hallo,
Google hilft weiter. Einfach mal nach Deiner Fehlermeldung suchen lassen. Dann stößt Du u.a. auf diese Seite: < http://forums.devshed.com/t71020/s.html>.
Mit Deinem regulären Ausdruck hat der Fehler nichts zu tun, sondern mit der Zuweisung, die Du nennst.
Schau Dir mal die oben verlinkte Seite an, das sollte Dir eigentlich weiterhelfen. Wenn nicht, dann müßtest Du hier ein bißchen mehr Code posten, denn sonst erschließt sich der Zusammenhang nicht.
Ciao,
Andreas
Danke, aber ich hab auch schon selber das Problem gefunden.
Das ganze war ne foreach-Schleife, die in etwa so aussah:
foreach ($array as $key => $value)
{
$array[count ($array)] = "blabla";
if ($bedingung == $bedingung2) $array[count ($array)] .= "blabla";
}
Das heißt ich tu ungewollt, 2 Unterarrays definieren. Warum dass deswegen dann bei der anderen Funktion einen Fehler bringt ist mir schleierhaft. Ich weiß nicht mal, warum da überhaupt ein Fehler kommt, egal ob das mit dem Array nun gewollt oder nicht ist.
Tschau Andü
Hi,
foreach ($array as $key => $value)
{
$array[count ($array)] = "blabla";
$array[] = "blabla";
if ($bedingung == $bedingung2) $array[count ($array)] .= "blabla";
Das Element mit Index count($array) existiert zu diesem Zeitpunkt noch nicht.
Es gibt ja nur die Elemente 0, 1, 2, ... count($array)-1
Also kannst Du an das Element mit Index count($array) nix mit .= anhängen.
cu,
Andreas
Hi,
die in etwa so aussieht $text.=$text2. Sobald ich sie aber $text=$text+$text2 schreib
daß das 2 vollständig verschiedene Zuweisungen sind, ist Dir aber klar? . ist Stringverkettung, + ist Addition.
cu,
Andreas