在函数PHP中调用函数

the*_*ack 5 php

1    function foo($i){
2       return bar($i)*4;
3       function bar($i){
4           return $i*4;
5           }
6       }
7    echo foo(4);
Run Code Online (Sandbox Code Playgroud)

返回

Fatal error: Call to undefined function bar() in /var/www/index.php on line 2
Run Code Online (Sandbox Code Playgroud)

为什么不起作用?它在javascript中工作得很好,而当我这样做时它可以工作:

function foo($i){
   return bar($i)*4;
   }

function bar($i){
   return $i*4;
   }
Run Code Online (Sandbox Code Playgroud)

Per*_*rcy 18

将函数定义在返回值之上,否则永远不会执行.

<?php
function foo($i){
    function bar($i){
        return $i*4;
    }
    return bar($i)*4;
}
echo foo(4);
?>
Run Code Online (Sandbox Code Playgroud)