No hay ningún error en la sintaxis del código. Lo que probablemente sucede es que la versión de PHP que utiliza
Axo, es menor que la 5.4, en donde el uso de funciones lambda ya ha sido implementado y se pueden construir arrays con corchetes. Si quieres que funcione en versiones antiguas, puedes hacerlo así:
Código PHP:
Ver originalfunction lambda($palabra){
if (in_array($palabra, array('loca', 'idiota', 'viagra'))) return $palabra; }
function contar($texto){
}
contar('la loCa del bosque era muy loca y entonces enloquecio muy LOCA mente. Locura');
contar('La idiota estuvo insistiendo por lo iDioTa que es. Además, es una loca y su marido consume vIaGRa.');
Aquí puedes ver cómo funciona
con la función lambda y arrays construidos con corchetes y
con una función nombrada y el constructor array().
Y respondiendo a lo que dice
GeekGirl, cuando publiqué mi respuesta, el tema aún no había sido marcado como solucionado, pero aunque lo haya estado, no tiene absolutamente nada de malo el aportar con otra solución, de hecho, debes de saber que, en la programación, existen diversas formas de resolver un problema; lo que hice fue mostrar una alternativa más. Además, la optimización no va precisamente por el lado de la cantidad de líneas de código sino por el tiempo tomado en la obtención del resultado y, por ende, la cantidad de recursos utilizados. Tu solución funciona bien,
pero no es la más óptima y, como dije, también podría optimizarse aún más la que propuse.
Saludos