• Welcome to Test Foro de elhacker.net SMF 2.1.
 

[Resulto]: ¿"strlen" o "mb_strlen" sirven para valores numéricos?

Started by Leguim, 9 September 2019, 02:53 AM

0 Members and 1 Guest are viewing this topic.

Leguim

Sencillamente eso, si las funciones de php "strlen" o "mb_strlen" sirven para los valores numéricos"?




Mod: Temas sobre PHP van al subforo de PHP.

MinusFour

¿Que es lo que esperas que haga strlen? Puedes usarlo para contar digitos en números enteros.

@XSStringManolo

Si la función se llama strlen que viene de string y length... Diría que no sirve para contar números enteros. Nunca probé. Si sirve debería poder contar literales y valores enteros contenidos en una variable. Haz la prueba a ver que te sale. Si no va siempre puedes hacer un cast para contar los dígitos:
$digitosDeEntero = strlen((string)$Entero);

Si lo vas a usar para automatizar algo tienes is_numeric, is_int y is_string. Para strip de caracteres y contarlos con strlen antes de castear, o lo que sea. Ten cuidado con los tamaños.

MinusFour

Quote from: string Manolo on  9 September 2019, 05:59 AM
Si la función se llama strlen que viene de string y length... Diría que no sirve para contar números enteros. Nunca probé. Si sirve debería poder contar literales y valores enteros contenidos en una variable. Haz la prueba a ver que te sale. Si no va siempre puedes hacer un cast para contar los dígitos:
$digitosDeEntero = strlen((string)$Entero);

PHP hace casting de números a strings cuando es necesario:

Quote
A value can be converted to a string using the (string) cast or the strval() function. String conversion is automatically done in the scope of an expression where a string is needed.

https://www.php.net/manual/en/language.types.string.php#language.types.string.casting

De todas maneras, si quieres contar los digitos tienes que tener cuidado con cosas como floats, números negativos, notación científica, etc. Los floats agregan un punto, los números negativos usan un "-", los números en notación científica se tragan 0s...


Leguim

Quote from: MinusFour on  9 September 2019, 15:10 PM
PHP hace casting de números a strings cuando es necesario:

https://www.php.net/manual/en/language.types.string.php#language.types.string.casting

De todas maneras, si quieres contar los digitos tienes que tener cuidado con cosas como floats, números negativos, notación científica, etc. Los floats agregan un punto, los números negativos usan un "-", los números en notación científica se tragan 0s...

¡Muchas gracias a los dos!