@lolainas : pues posiblemente si me guio por el criterio de "numero de invocacion a funciones" pero a lo que me referia de tu solucion es que usas filter_input() para nada en especial y "supongo" que esa funcion debe tener un costo alto...
Y para ser justos en la comparacion... toca encasular algo de su codigo:
Código PHP:
function nomNum(){
return filter_input(INPUT_POST, 'txtNumero', FILTER_CALLBACK, ['options' => function($n) {
return implode(', ', array_map(function($n) {
return ['cero', 'uno', 'dos', 'tres', 'cuatro', 'cinco', 'seis', 'siete', 'ocho', 'nueve'][$n];
}, str_split($n)));
}]);
}
echo nomNum();
1 + 1 + 1 + 1 + 1 + 1= 6 "function calls"
Código PHP:
function nomNum($numero){
$nombres = array('Cero', 'Uno', 'Dos', 'Tres', 'Cuatro', 'Cinco', 'Seis', 'Siete', 'Ocho', 'Nueve');
return $nombres[$numero];
}
$num = 34234;
echo implode(', ', array_map('nomNum', str_split($num)));
= 3 "function calls"
Código PHP:
<?php
function nomNum($n){
$d = str_split(strval($n));
return implode(' ',array_map(function($d){$nombres = array('Cero', 'Uno', 'Dos', 'Tres', 'Cuatro', 'Cinco', 'Seis', 'Siete', 'Ocho', 'Nueve'); return $nombres[$d];},$d));
}
echo nomNum(443541);
1 + 1 + 1 + 1 + 1 = 5 "function calls"
Sino hice mal las cuentas... la de Alexis88 seria la de menos function calls efectivamente
EXTRA: su codigo no es compatible con PHP hasta su version 5.5 por esto:
Código PHP:
Ver original<?php
// Solo PHP 5 >= 5.5
echo ['cero', 'uno', 'dos', 'tres', 'cuatro', 'cinco', 'seis', 'siete', 'ocho', 'nueve'][5];