Anonim işlevler PHP 5.3 mevcuttur.
Anonim işlevler uzun bir süre için PHP mevcut olmuştur: create_function PHP 4.0.1 'den beri civarında olmuştur. Eğer yeni bir kavram ve PHP 5.3 olarak kullanılabilir sözdizimi olduğunu oldukça haklısınız ancak.
Ben onları kullanmak veya bunları önlemek gerekir? Eğer öyleyse, nasıl?
Hiç kullanılan ettiyseniz create_function önce, sonra yeni sözdizimi sadece sağ bu kullanılan yerlerde kayma olabilir. Diğer yanıtlar belirtildiği gibi, ortak bir olgu sadece bir kez (ya da en azından tek bir yerde) kullanılacak olan 'ıskarta' işlevleri içindir. Genellikle bu array_map / reduce / filter gibiler için geri aramalar şeklinde söz konusu olduğunda, preg_replace_callback, {[(5)] } vb.
Harfler kelimelerle görünmesine sayısını saymak için anonim işlevleri kullanarak Örnek (Bu diğer şekillerde bir dizi yapılabilir, bu sadece bir örnek):
$array = array('apple', 'banana', 'cherry', 'damson');
// For each item in the array, count the letters in the word
$array = array_map(function($value){
$letters = str_split($value);
$counts = array_count_values($letters);
return $counts;
}, $array);
// Sum the counts for each letter
$array = array_reduce($array, function($reduced, $value) {
foreach ($value as $letter => $count) {
if ( ! isset($reduced[$letter])) {
$reduced[$letter] = 0;
}
$reduced[$letter] += $count;
}
return $reduced;
});
// Sort counts in descending order, no anonymous function here :-)
arsort($array);
print_r($array);
(Kısalık için kesilmistir) verir:
Array
(
[a] => 5
[n] => 3
[e] => 2
... more ...
[y] => 1
)