Warum ergibt das Folgen 34? Das scheint nichts mit oktalen Zahlen zu tun zu haben.
intval(042);
Warum ergibt das Folgen 34? Das scheint nichts mit oktalen Zahlen zu tun zu haben.
intval(042);
Es hat etwas mit oktalen Zahlen zu tun, 042
wird als Oktalzahl interpretiert 42
das ist 4 * 8 + 2 = 34
.
Bitte beachten Sie, dass die Oktal-Interpretation erfolgt, wenn das Zahlenliteral beim Laden des PHP-Skripts geparst wird. Es hat nichts zu tun mit intval()
was hier nichts bringt, da der Wert bereits eine ganze Zahl ist.
Die Oktalinterpretation erfolgt nur bei Zahlenliteralen, nicht bei der Umwandlung einer Zeichenkette in eine Ganzzahl:
intval(042) // == 34
intval('042') // == 42
(int)'042' // == 42
Es geht einfach darum, wie die Funktion definiert ist. Die führende Null ist eine Anweisung, die als Oktalzahl geparst wird, ähnlich wie 0x als Präfix Hex bedeutet. Siehe die Dokumentation für weitere Informationen .
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.