Php: () döngü için bir fonksiyonları oluşturma

5 Cevap php

Herkes o adı için bir değişkenin içeriğini kullanarak, diğer fonksiyonları oluşturmak mümkün oldu, ben bir işlevi yazmak nasıl biliyor mu?

İşte ben php bahsettiğimi temel bir örnek:

function nodefunctioncreator()
  {
    for ($i =1, $i < 10, $i++)
      {
      $newfunctionname = "Node".$i;
      function $newfunctionname()
        {
        //code for each of the functions
        }
      }
  }

Biri bana bunu sağlayacak bir dil biliyor mu?

5 Cevap

Bunun için create_function kullanmak isteyebilirsiniz.

Example:

$newfunc = create_function('$a,$b', 'return "ln($a) + ln($b) = " . log($a * $b);');
echo "New anonymous function: $newfunc\n";
echo $newfunc(2, M_E) . "\n";
// outputs
// New anonymous function: lambda_1
// ln(2) + ln(2.718281828459) = 1.6931471805599

Example Source: php.net

PHP 5.3 kullanıyorsanız ediyorsanız, lambdas kullanabilirsiniz:

for ($i=0;$i<10;$i++) {
  $funcName = 'node'.$i;
  $$funcName = function ($something) {
    // do something
  }
}

$node7('hello');

Sen create_function() ile anında işlevlerini oluşturabilirsiniz.

Neden bunu yapmak istersiniz?

Ayrıca JavaScript bu mümkündür:

function nodefunctioncreator(){
  var o = {};
  for(var i = 1, i < 10, i++) {
    o["Node" + i] = function(){
      //code for each of the functions
    }
  }
  return o;
}

Fonksiyonlar Düğüm1, Düğüm2 içeren bir nesne ... Node9 iyi bir şey yapıyor getirisi ile arama fonksiyonu.