Come posso utilizzare le chiusure PHP 5.3 come Utilizziamo i blocchi in Ruby. Non ho mai usato 'for' Loop in Ruby a causa dell'uso di Blocks con 'each' 'find_all' 'inject' Methods.Come posso utilizzare le chiusure PHP 5.3 come Utilizziamo i blocchi in Ruby
Come posso usare PHP 5.3 Chiusure come Ruby Blocchi e dire bye-bye a 'per il' Loop :)
come tra {e} è una chiusura (o di blocco o anonimo Function)
fruit = %w[apple banana orange]
fruit.each { |f| print "#{f}, " }
lo faccio in PHP questo modo,
$fruit = array('apple', 'banana', 'orange');
foreach ($fruit as $f)
{
print "$f, ";
}
c'è un modo per fare questo il modo in cui utilizzano rubino Chiusure PHP come PHP 5.3 supporta.
Non si possono insegnare nuovi trucchi al vecchio cane. PHP ha ottenuto tutte le caratteristiche "fantasiose" (OO, namespace, chiusure) nel tempo, ma non è stato progettato correttamente all'inizio - il che significa che tutte le funzionalità linguistiche sono presenti ora, ma non sempre quelle utili e convenienti per uso. Come puoi vedere dalle risposte, è ancora più semplice ed elegante utilizzare funzioni di array predefinite. –
Oh, un'altra cosa importante: le chiusure non sono le stesse delle funzioni anonime. Le chiusure devono mantenere l'ambiente in cui sono state definite, per chiamarle chiusure.Le funzioni anonime non devono. E, tecnicamente, i blocchi di Ruby non sono funzioni, sono piuttosto un costrutto linguistico. Ma possono essere facilmente convertiti in funzioni, ad esempio anteponendoli con 'lambda'. –
Rohit, puoi spiegare perché ai programmatori di Ruby non piacciono i loop "for"? A me sembra che la maggior parte del tempo che usano un blocco è fare esattamente la stessa cosa di un ciclo "for" (o "foreach" in php), ma sembra che li odino davvero. Ho chiesto prima e non ho mai ottenuto una buona risposta. – James