函数内部的函数。?
此代码生成结果为 56。
function x ($y) {
function y ($z) {
return ($z*2);
}
return($y+3);
}
$y = 4;
$y = x($y)*y($y);
echo $y;
你知道里面有什么吗?我很困惑。
此代码生成结果为 56。
function x ($y) {
function y ($z) {
return ($z*2);
}
return($y+3);
}
$y = 4;
$y = x($y)*y($y);
echo $y;
你知道里面有什么吗?我很困惑。
X 返回 (值 +3),而 Y 返回 (值*2)
给定值为 4,这意味着 。(4+3) * (4*2) = 7 * 8 = 56
尽管函数的范围不受限制(这意味着您可以安全地“嵌套”函数定义),但此特定示例容易出错:
1) 你不能在调用之前调用,因为函数在执行一次之前实际上不会被定义。y()
x()
y()
x()
2) 调用两次会导致 PHP 重新声明函数,导致致命错误:x()
y()
致命错误: 无法重新声明 y()
两者的解决方案是拆分代码,以便两个函数都声明为彼此独立:
function x ($y)
{
return($y+3);
}
function y ($z)
{
return ($z*2);
}
这也更具可读性。