Comment puis-je utiliser PHP 5.3 comme Closures Nous utilisons blocs Ruby. Je n'ai jamais utilisé 'for' Boucle dans Ruby en raison de l'utilisation de Blocs avec 'each' 'find_all' 'inject' Méthodes.Comment puis-je utiliser PHP 5.3 comme Closures Nous utilisons blocs Ruby
Comment puis-je utiliser PHP 5.3 comme Ruby Closures blocs et dire adieu à 'pour' boucles :)
Comme entre {et} est une fermeture (ou bloc ou Anonymous Fonction)
fruit = %w[apple banana orange]
fruit.each { |f| print "#{f}, " }
je le fais en PHP cette façon,
$fruit = array('apple', 'banana', 'orange');
foreach ($fruit as $f)
{
print "$f, ";
}
est-il un moyen de faire ce Ruby manière en utilisant PHP comme Closures PHP 5.3 supporte.
Vous ne pouvez pas enseigner de nouvelles figures au vieux chien. PHP a obtenu toutes les fonctionnalités "fantaisistes" (OO, namespaces, fermetures) au fil du temps, mais il n'a pas été conçu correctement au tout début - ce qui signifie que toutes les fonctionnalités linguistiques sont là maintenant, mais pas toujours utile et pratique utilisation. Comme vous pouvez le voir dans les réponses, il est toujours plus facile et plus élégant d'utiliser des fonctions de tableau prédéfinies. –
Oh, une autre chose importante: les fermetures ne sont pas les mêmes que les fonctions anonymes. Les fermetures doivent maintenir l'environnement dans lequel elles ont été définies, afin de les appeler des fermetures.Les fonctions anonymes n'ont pas besoin de le faire. Et, techniquement, les blocs Ruby ne sont pas des fonctions, ils sont plutôt une construction de langage. Mais ils peuvent facilement être convertis en fonctions, en les ajoutant par exemple 'lambda'. –
Rohit, pouvez-vous expliquer pourquoi les programmeurs Ruby n'aiment pas les boucles "for"? Il me semble que la plupart du temps ils utilisent un bloc pour faire exactement la même chose qu'une boucle "for" (ou "foreach" en php) mais ils semblent vraiment les détester. J'ai déjà demandé et jamais obtenu une bonne réponse. – James