Guten Abend,
ich wollte nach dem Training bloß fix ein Script hochladen, was auf meiner Testumgebung wunderbar läuft. Mit Strato hab ich nicht gerechnet. Ich stehe hier kurz vor der Explosion.
allow_call_time_pass_reference ist aus. Weder per .htaccess via php_flags noch per ini_set lässt sich diese Einstellung ändern. Ich weiss, dass dieses Vorgehen deprecated ist, aber siehe unten. *g*
Wegen http://bugs.php.net/bug.php?id=12936 muss ich array_multisort das zu sortierende Array by reference übergeben. Funkioniert auch. Nur bekomm ich dann natürlich die passende Warnung:
Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of array_multisort(). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in .../include.php on line 78
Mein error_reporting( E_ALL ) hab ich schon rausgenommen. Aber selbst error_reporting( E_ERROR | E_PARSE ) hilft mir nicht.
array_multisort kann ich auch nicht redeclare'n, wozu auch. Es handelt sich um eine Funktion mit variablen Argumenten, der u.a. Konstanten übergeben werden können, die nicht by Reference übernommen werden können.
Was mache ich, außer das ganze *insert lots of schimpfworts here* Script komplett umzubauen?
Dieses Problem schlägt an mehreren Stellen durch, da sind es aber eigene Funktionen, die ich zur Not entsprechend umstellen kann. Auch wenn es Schwachsinn ist, statt Argumente als optional zu deklarieren, diese wegen der by-ref-Technik pflichtig zu machen und dann in der Funktion gegen FALSE oder was-auch-immer zu vergleichen. Aber array_multisort und preg_match brauchen bestimmte Argumente by reference. Google findet mir haufenweise Fragen ohne echte Antworten, das SelfForum nicht viele Threads, die aber allesamt nicht zu meinem Problem passen.
Ich bin (mal wieder) für jede Anregung dankbar.
Gruß, Thoralf
Sic Luceat Lux!