Eğer bir PHP dizi bir işlevi saklayabilirsiniz?

4 Cevap php

örneğin:

$functions = array(
  'function1' => function($echo) { echo $echo; }
);

Bu mümkün mü? En iyi alternatif nedir?

4 Cevap

Alex Barrett yazılan takip etmek, create_function () aslında böylelikle, işlevini çağırmak için kullanabileceğiniz bir dize döndürür:

$function = create_function('$echo', 'echo $echo;' );
$function('hello world');

Daha iyi bir cevap diziler işlevleri koyarak neden olarak bir soru olabilir. Eğer başarmak için çalışıyoruz ne bağlı olarak, bu kod iyi kullanmak olmayabilir.

edit:

php fonksiyonları bildirmek ve kullanmak için iyi bir yoldur:

(Sayfanın üstündeki)

function name(){
}

(Kodunuzda)

name();

:)

Güzel ve temiz. Bunu daha iyi yapılandırılmış bir şey gerekiyorsa, gerçekten nesnelerin içine bakmak gerekir.

$object->function();

PHP beri, kullanım örneği "5.3.0 Anonim işlevler kullanılabilir hale":

//store anonymous function in an array variable e.g. $a["my_func"]
$a = array(
    "my_func" => function($param = "no parameter"){ 
        echo "In my function. Parameter: ".$param;
    }
);

//check if there is some function or method
if( is_callable( $a["my_func"] ) ) $a["my_func"](); 
    else echo "is not callable";
// OUTPUTS: "In my function. Parameter: no parameter"

echo "\n<br>"; //new line

if( is_callable( $a["my_func"] ) ) $a["my_func"]("Hi friend!"); 
    else echo "is not callable";
// OUTPUTS: "In my function. Parameter: Hi friend!"

echo "\n<br>"; //new line

if( is_callable( $a["somethingElse"] ) ) $a["somethingElse"]("Something else!"); 
    else echo "is not callable";
// OUTPUTS: "is not callable",(there is no function/method stored in $a["somethingElse"])

REFERENCES: