来自 PHP 关闭的错误响应
Wrong response from PHP Closure
我试图更多地了解闭包,但我无法从以下代码中获得正确的响应。由于某种原因,我收到 31 而不是 60 的响应。我的目标是最终开始单元测试闭包。
谢谢
<?php
class Closuretest
{
/**
* Closuretest constructor.
*/
public function __construct()
{
}
/**
* @return mixed
*/
public function getToken()
{
$response = $this->getEntry('abcde', function() {
return 30;
}, 30);
// Return access token
return $response;
}
/**
* @param $a
* @param $b
* @param $c
* @return mixed
*/
private function getEntry($a, $b, $c)
{
return $b+$c;
}
}
$testinstance = new Closuretest();
echo $testinstance->getToken();
在函数getEntry()
中,$b
不是一个整数,而是一个函数。您需要通过调用 $b()
来执行此函数以获得结果:
private function getEntry($a, $b, $c)
{
return $b() + $c; // instead of `$b + $c`
}
这里,$b()
将return30,而$c
等于30。所以,getEntry()
将return60。
我试图更多地了解闭包,但我无法从以下代码中获得正确的响应。由于某种原因,我收到 31 而不是 60 的响应。我的目标是最终开始单元测试闭包。
谢谢
<?php
class Closuretest
{
/**
* Closuretest constructor.
*/
public function __construct()
{
}
/**
* @return mixed
*/
public function getToken()
{
$response = $this->getEntry('abcde', function() {
return 30;
}, 30);
// Return access token
return $response;
}
/**
* @param $a
* @param $b
* @param $c
* @return mixed
*/
private function getEntry($a, $b, $c)
{
return $b+$c;
}
}
$testinstance = new Closuretest();
echo $testinstance->getToken();
在函数getEntry()
中,$b
不是一个整数,而是一个函数。您需要通过调用 $b()
来执行此函数以获得结果:
private function getEntry($a, $b, $c)
{
return $b() + $c; // instead of `$b + $c`
}
这里,$b()
将return30,而$c
等于30。所以,getEntry()
将return60。