PHPの匿名関数については本当に混乱しています。匿名関数が主に味やコーディングスタイルの問題として使用されているかどうかを知りたいです。PHPの匿名関数の使用
私は、コールバック関数と少ないコードなしで同じ結果を得ることができるので、これを求めています。
$output = 10;
$people = (new People(new John));
//VERSION 1 ANONYMOUS FUNCTION
$people->run(function ($value) use(&$output){
$output = $output + $value;
});
var_dump($output); //RESULT => 20
//VERSION 2 WITHOUT ANONYMOUS FUNCTION
var_dump($people->run() + $output); //RESULT => 30
あなたがここに完全なコードを実行して見ることができます:だからここ
は、いくつかのテストコードがある https://www.tehplayground.com/IhWJJU0jbNnzuird
<?php
interface HumanInterface
{
public function hello();
}
class People
{
protected $person;
protected $value;
public function __construct(HumanInterface $person)
{
$this->person = $person;
return $this;
}
public function run(callable $callback = null, $name = null)
{
$this->value = 10;
if(is_callable($callback)) {
return call_user_func($callback, $this->value);
}
return $this->value;
}
}
class John implements HumanInterface
{
public function hello()
{
return 'hi i am john';
}
}
$output = 10;
$people = (new People(new John));
$people->run(function ($value) use(&$output){
$output = $output + $value;
});
var_dump($output);
var_dump($people->run() + $output);
をだから私の質問は:なぜ使用無名関数ですか?それは 個人的な選択の問題ですか?