Rolf B: Datentypen in PHP 32 Bit

Beitrag lesen

Hallo TS,

Das Ganze scheint auch noch zufallsabhängig zu sein.

Bestimmt nicht. Du kennst höchstens die Einflussgrößen nicht.

Dabei kommt entweder false heraus oder eine Fehlermeldung, dass ip2log() kein Float mag.

Hä? Wieso auf einmal ip2long? (Ich nehme an, das ip2log war ein Typo). Der ist sogar noch unproblematischer. Du haust ihm eine IP mit erstem Wert > 127 rein und er gibt Dir eine negative Zahl zurück. Und decbin schluckt sie anstandslos.

Und wenn das mit ip2long jetzt ein Irrtum war und Du long2ip meintest, dann hast Du beim casten was falsch gemacht. In long2ip((int)$xyz) darf long2ip kein Float bekommen. Ich hatte noch ein PHP 5.6 auf meiner Dose, 32-bittig, selbst da funktioniert das.

long2ip(-1) muss "255.255.255.255" erzeugen. Und das casten eines Wertes größer als INT_MAX, aber kleiner als 2^32, gibt einen negativen integer.

Rolf

--
sumpsi - posui - obstruxi