Ich bin sehr verwirrt über das Verhalten der Linkshänder-Funktion von PHP. Ich benutze es auf zwei verschiedenen Maschinen (Dev und Hosting), und sie geben mir verschiedene Antworten. Ich habe es zu dieser Berechnung aufgespürt:PHP Left Shift gibt zwei Antworten auf zwei verschiedene Maschinen
(-3941404251) << 5;
Auf einer Maschine erhalte ich die Antwort -1570884448; Zum anderen bekomme ich 0. Auf beiden Systemen PHP_INT_MAX = 2147483647. Das spätere ist ein 32-Bit-System, und das erste ein 64-Bit, obwohl PHP als 32-Bit-Prozess läuft und immer noch die gleiche Antwort gibt.
Ich kann nur davon ausgehen, dass dies ein Problem mit 32-Bit-vs 64-Bit ist, aber gibt es eine einfache Möglichkeit, das gewünschte Verhalten zu erhalten. Wenn mich jemand auf eine Funktion oder etwas hinweisen könnte, wäre das großartig.
Danke!
Nun, das Echo vor dieser Aussage zu erzeugen, erzeugt das Gleiche. (Kontext ist nicht das Problem). – Brendon
@Sarfraz: er hat seinen Code gezeigt: '(-3941404251) << 5' ;;; @ Brendon: Ich reproduzieren, was Sie beschreiben: 0 auf 32 Bits und -1570884448 auf 64 Bits –