Entweder ist die Dokumentation fehlerhaft oder die Funktion ist fehlerhaft. Ehrlich gesagt, kann ich aus irgendeinem Grund nicht sehen, warum das Extrahieren ein Array als Referenz übergeben werden muss, aber jemand hat auf das EXTR_REFS-Flag für den Extract-Typ hingewiesen.
Wenn ich meine lokale Version des PHP-Codes (5.3.2) ansehe, kann ich sehen, dass die Funktionsdefinition für extract()
nicht auf Referenz verweist.
function extract (array $var_array, $extract_type = null, $prefix = null)
bei sort()
Mit Blick auf die Definition tut Show Pass von Referenz:
function sort (array &$array, $sort_flags = null)
diesem Grund habe ich auf extract()
nicht den strengen Fehler bekommen, und ich sehe es auf sort()
.
Ich nehme an, die Dokumentation auf php.net ist veraltet oder einfach nur falsch. extract()
ist ein alter Welpe ... Ich bin mir nicht sicher, ob zurück an dem Tag die Funktionsdefinition tatsächlich angezeigt &$var_array
oder nicht. Die andere Möglichkeit ist, dass die Funktionsdefinition irgendwann durcheinander geraten ist und die Dokumentation korrekt anzeigt, wie es sein sollte. Aufgrund der Tatsache, dass EXTR_REFS ein extra Typ Flag hat, kann dies der Fall sein (Diese Konstante existiert noch).
Bitte beachten Sie dies einen Fehler und melden Sie es. Ein verwandter Bug könnte sein: https://bugs.php.net/bug.php?id=55222 Eine verwandte Frage könnte sein: http://Stackoverflow.com/q/6726589/367456 – hakre
nun, das ist mir egal darüber, aber es zeigt, dass das Handbuch kann nicht vertraut werden: P was, wenn 'sterben()' tötet uns anstelle des Skripts? :( – thelolcat
lolcatly, nimm es leicht. Du kannst den Docs nicht immer trauen. Was auch immer Vertrauen hier bedeutet, ich denke, dieser kleine Fehler bringt dich nicht um, richtig? Und wenn es dir egal ist, bitte frag nicht – hakre