dedlfix: allow_call_time_pass_reference und array_multisort

Beitrag lesen

echo $begrüßung;

Ein interessantes Problem hast du dir da eingefangen :-)

allow_call_time_pass_reference ist aus. Weder per .htaccess via php_flags noch per ini_set lässt sich diese Einstellung ändern.

Ich wollte erst fragen, was gegen ein "gutes altes" @ spricht, jedoch bemerkte ich, dass weder dieses noch ein temporär ausgeschaltetes display_errors wirkt. Der Grund ist, dass die Warnung nicht während der Laufzeit sondern schon beim Parsen ausgeworfen wird. Nachvollziehen kann man das, indem man zwar die Funktionsdeklaration von msortWithRef() aus dem Beispiel von

http://bugs.php.net/bug.php?id=12936

drinlässt, aber deren Aufruf entfernt. Die Warnung kommt auch dann.

Mein error_reporting( E_ALL ) hab ich schon rausgenommen. Aber selbst error_reporting( E_ERROR | E_PARSE ) hilft mir nicht.

Im Script ist das auch zu spät - siehe oben. Wenn

php_flag allow_call_time_pass_reference On

in der .htaccess keine Wirkung zeigt - manche Provider sollen ja einige Werte fest verdrahtet haben, wobei sich mir der Sinn des Feststellens dieses Wertes nicht erschließt, dieses Feature ist schließlich nur veraltet und nicht sicherheitsrelevant - dann bleibt nur das Umstellen des error_reporting- oder des display_error-Wertes in der .htaccess. (error_reporting nimmt in der .htaccess nur Zahlenwerte an, die E_*-Konstanten sind an der Stelle unbekannt).

Das Anzeigen der Fehlermeldungen auszuschalten ist in der Produktivumgebung keine schlechte Idee. Die (regulären) Anwender können sowieso nichts damit anfangen. Besser ist es, sie per error_log oder eigener Errorhandler-Funktion aufzufangen und sie so nur dem administativen Personal zur Verfügung zu stellen.

Ansonsten fällt mir nur ein, eine eigene Implementation dieser Funktionalität zu schreiben.

echo "$verabschiedung $name";