create_function で作成された関数
PHP の組み込み関数 create_function を使用して作成された関数。 string create_function ( string $args , string $code )
両方のパラメータは文字列です
その場合、関数に送信されるパラメータは変数にすることもできます
create_function には 2 つの文字列パラメータを渡す必要があるため
あなたのコードは同等ですto
function tmp($item) { return $item*3; }$b = array_map('tmp', $a);
$b = array_map(function($item) { return $item*3; }, $a);
それでは、関数に送信されるパラメータも変数にすることはできませんか?
$item はすでに匿名関数に送信される変数です。
$a=array(100,200,300);
$b=array_map(create_function('$item','return $item*3;'),$a); つまり、('$item',' return $item) *3;') これらは create_function 関数の 2 つのパラメータです。
このように書かれていますが、何か質問はありますか?
create_function には 2 つの文字列を渡す必要があります
create_function によって生成された関数にも 2 つの文字列を渡す必要があるという意味ではありません
create_function に渡す必要がある 2 つの文字列は、次の 2 つの文字列です:匿名関数
$a=array(100,200,300)
$b=array_map(create_function('$item','return $item*3;'),$a);
var_dump($b); ;
create_function の要件 2 つの文字列を渡しますが、ここでの $a のパラメーターは 100 200 300 です。助けてください。
create_function 自体が匿名関数を作成することです。 ) は関数であり、入力パラメータは文字列として渡す必要があります。
作成された関数のパラメータは、渡したいパラメータです。つまり、作成された匿名関数はこのパラメータを内部で直接使用するため、関数の仮パラメータ 100、200、300 が渡されます。 , ので、それを渡します。これは数値型であり、数値型が使用されます。 * 演算子により、渡されたものが数値ではない場合 (たとえば、文字列 0123)、最初に数値に変換されてから演算されます:
を参照してください:
$a=array(100,200,"011 ");
$b=array_map( create_function('$item','return $item*3;'),$a);
var_dump($b);
ありがとうございます。わかりました。ところで、もう一つ質問がありますが、私は初心者なので理解できないことがたくさんあります
黙って集めてください