Moin!
Da die Eulersche Zahl (e) bereits als Symbol für Exponent gebraucht wird ist nicht zu befürchten, dass diese früher oder später als "numerisches Symbol", in is_mumeric() verwendet, ein true liefert.
Ich verstehe hiervon zwar nur die Hälfte, glaube aber dennoch zu verstehen, was du meinst.
Eulersche Zahl: Mathematisches Symbol: e
Es ist also für Mathematiker eine Zahl und zumindest theorethisch besteht die Möglichkeit, dass diese als globale Konstante in einer beliebigen Programmiersprache (jetzt oder später) mit einer unter Umständen sehr hohen Genauigkeit "vorbelegt" ist. Du hattest mit
Meinst du, dass man sich hier auf PHP's automatische Typenumwandlung verlassen sollte. (Jetzt und in Zukunft?)"
gefragt, ob man sich in Zukunft sicher sein könne, dass is_numeric() etc. auch in Zukunft wie gewünscht funktioniert.
=== Also ===
In PHP kennzeichnet das "e" in Zahlen ('1.5e2') bereits den (darauf folgenden) Exponenten der Zahl 10. Mit dem Ergebnis der Exponierung ist die, vom e aus betrachtet, linkstehende Zahl zu multiplizierenden um ein Ergebnis in der herkömmlichen Schreibweise zu erhalten.
Beispiele:
1.5e2 = 1.5*10^2 = 1.5*100 = 150
1.5e-2 = 1.5*10^-2 = 1.5*1/100 = 0.015
Deshalb liefert is_numeric('1.5e-2') auch ein true, es handelt sich sogennannte expotentielle Schreibweise einer Zahl, welche besonders bei sehr großen oder sehr kleinen Zahlen verwendet wird.
Folglich ist das Symbol schon "verbraucht" und es ist nicht zu befürchten, dass das e eines Tages allein einen Wert von rund 2.7182818284 repräsentiert und folglich also is_numeric('e') oder is_numeric("e") oder is_numeric(e) ein true liefert¹. Das bejaht neben der Nichtexistenz von Hinweisen auf eine veraltete und folglich nicht mehr zu verwendende Funktion die Zukunftssicherheit.
¹) Gilt natürlich nur unter der Einschränkung, dass da nicht irgendwo davor ein: define(e, 2.7182818284); steht....
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development