Luego de consultar con especialistas en esta materia, programadores de deferentes áreas y maestros dimos con la respuesta al dilema y la plasmamos en esta publicación.
Solución:
sprintf
es lo más cercano. Es el Python de estilo antiguo. string formato:
sprintf("my %s %s cat", "red", "fat")
Como PHP realmente no tiene una alternativa adecuada a str.format
en Python, decidí implementar mi propio muy simple, que como la mayoría de las funciones básicas de Python.
function format($msg, $vars)
$vars = (array)$vars;
$msg = preg_replace_callback('#\#', function($r)
static $i = 0;
return ''.($i++).'';
, $msg);
return str_replace(
array_map(function($k)
return ''.$k.'';
, array_keys($vars)),
array_values($vars),
$msg
);
# Samples:
# Hello foo and bar
echo format('Hello and .', array('foo', 'bar'));
# Hello Mom
echo format('Hello ', 'Mom');
# Hello foo, bar and foo
echo format('Hello , 1 and 0', array('foo', 'bar'));
# I'm not a fool nor a bar
echo format('I'm not a foo nor a ', array('foo' => 'fool', 'bar'));
- No importa el orden,
- Puede omitir el nombre/número si desea que simplemente se incremente (el primero
emparejado se transformará en
0
etc.), - Puede nombrar sus parámetros,
- Puedes mezclar los otros tres puntos.
Valoraciones y reseñas
Si conservas alguna vacilación y forma de arreglar nuestro escrito te insinuamos dejar un paráfrasis y con placer lo interpretaremos.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)