Ich bin neu in PHP und versuche eine einfache Javascript-Funktion in eine PHP-Funktion umzuwandeln. Bisher weiß ich nur die Variablen zu konvertieren, ich brauche Hilfe bei der Sortierfunktion und dem Array-Filter. Danke für jede Hilfe!
%Vor%Meine halbe Konvertierung:
%Vor% Das Scoping funktioniert nicht wie JavaScript. Sie können in Ihrer Callback-Funktion nicht einfach auf $number
verweisen, da es keine Gültigkeitsbereichskette hat.
Sie müssen es entweder global (nicht empfohlen, aber einfach) machen:
%Vor% Oder Sie könnten den Operator use
verwenden (eine elegante Lösung):
Wenn ich also das JavaScript richtig verstehe, gibt diese Funktion den am besten passenden Wert in rollArray
zurück, der größer ist als der angegebene number
Parameter?
Hier ist meine Lösung:
%Vor%Sie sind auf dem richtigen Weg, wenn Sie array_filter () verwenden. Bei einer anonymen Funktion als Callback stoßen Sie jedoch auf das erste JavaScript vs PHP Problem - Scoping.
In PHP teilen Funktionen nicht automatisch den Bereich, in dem sie definiert sind. Wenn Sie etwas aus dem aktuellen Bereich benötigen, müssen Sie es mit dem Schlüsselwort use mitbringen.
Zuletzt benutze ich reset () , um den ersten Wert des sortierten Arrays herauszuholen, der dem am nächsten passenden sein sollte. Sie können $rollArray[0]
nicht verwenden, da array_filter () Schlüssel speichert und daher 0
möglicherweise nicht mehr existiert.
Tags und Links javascript php