Herkes anonim fonksiyonları ile yeni bir php beta sürümünü denediniz mi?

2 Cevap php

Herkes yeni 5.3.0 RC1 php serbest çalıştı ve anonim fonksiyonları ile biraz oynadı?

Ben fonksiyonel programlama için python gibi kullanabilirsiniz olmadığını bilmek istiyorum.

Örneğin, gibi bir şey yapabilirsiniz:

def sinus(x):
  if x<=0.1:
    return x
  else:
    return (lambda x: 3*x-4*x*x*x)(sinus(x/3))

print sinus(172.0)

Or better, can you do all the cool stuff like in python or lisp? Are there any limits? Unfortunately I don´t have a better example in mind. :)

2 Cevap

PHP 5.3 'te yeni bir anonim fonksiyonlar mevcut çağrı işlevleri çok yararlıdır. Bu örnek gösterir.

echo preg_replace_callback('~-([a-z])~', function ($match) {
    return strtoupper($match[1]);
}, 'hello-world');
// outputs helloWorld

Hala bir hile, PHP 5.3 impliments bir sınıf örneği Invokable yapar Kapatma sınıf beri.

Wikipedia quote:

PHP fonksiyonlar hala birinci sınıf işlevleri değildir çünkü PHP 5.3 taklit anonim fonksiyonlar ama gerçek anonim işlevleri desteklemez.

Bu PHP RFC olarak Kilitler hakkında daha fazla bilgi edinebilirsiniz

PHP 4 fonksiyonunu kullanabilirsiniz beri create_function ne istediğinizi yapmak için.

Sizin örnekte:

<?php

function sinus($x){
  if($x < 0.1) {
    return $x;
  } else {
    $func = create_function('$x', 'return 3*$x-4*$x*$x*$x');
    return $func( sinus($x/3) );
  }
}

?>