Tengo una situación en la que tengo que hacer eco de cierta longitud para varias variables en varios lugares.
Sé que en bash podemos usar echo ${variable:0:20} para lograr esto, sin reescribir ni refinar la variable.
por ejemplo, en php quiero poder hacer esto.
$string1 = "I am looking for a way to only echo the first 20 characters from a string variable"; echo $string:0:20;Sé que es muy simple redefinir mi variable en php de esta manera y repetirla.
$small = substr($big, 0, 20); echo $small;Pero tengo que usar la misma variable en muchas ubicaciones y en cada ubicación tengo que hacer eco de una longitud diferente, por lo que no es factible usar el método anterior. ¿Hay algo más que me falta que podría usar?
Sé que en bash podemos usar echo ${variable:0:20} para lograr esto, sin reescribir ni refinar la variable.
En PHP puedes usar echo substr($variable, 0, 20); también sin reescribir o refinar la variable.
Para mayor comodidad (y modificaciones sencillas, por ejemplo, agregar ... a todas las cadenas envueltas), puede envolver esto en una pequeña función:
function shorten($string, $maxLength) { return substr($string, 0, $maxLength); }y usarlo como
echo shorten("Some very very very very very long string", 20); O incluso incluye el echo en tu función:
function output($string, $maxLength) { echo substr($string, 0, $maxLength); }y usarlo como
output("Some very very very very very long string", 20);La solución más fácil es crear una function para que pueda ahorrar algunas líneas de código, no veo ninguna otra mejora que pueda hacer además de eso, algo como:
function small($string) { return substr($string, 0, 20); }Úsalo como:
print small("Some sentence longer than 20 chars");No te estás perdiendo nada más que el hecho de que puedes hacer eco del valor devuelto desde substr . Si quiere ir realmente corto, como si escribir el segundo parámetro de substr es demasiado, simplemente envuélvalo en una nueva función.
function ss($string, $size) { return substr($string, 0, $size); } echo ss('long ... string', 20);