만약 당신이 php 7에 있다면 다음을보십시오 :
이 구현은 중첩 된 함수에 대한 명확한 아이디어를 제공 할 것입니다. 함수 foo ()에 중첩 된 세 가지 함수 (too (), boo () 및 zoo ())가 있다고 가정합니다. boo () 및 zoo ()에는 동일한 이름의 중첩 함수 xoo ()가 있습니다. 이제이 코드에서 중첩 함수의 규칙을 명확하게 설명했습니다.
function foo(){
echo 'foo() is called'.'<br>';
function too(){
echo 'foo()->too() is called'.'<br>';
}
function boo(){
echo 'foo()->boo() is called'.'<br>';
function xoo(){
echo 'foo()->boo()->xoo() is called'.'<br>';
}
function moo(){
echo 'foo()->boo()->moo() is called'.'<br>';
}
}
function zoo(){
echo 'foo()->zoo() is called'.'<br>';
function xoo(){
echo 'zoo()->xoo() is called'.'<br>';
}
}
}
function test1(){
echo '<b>test1:</b><br>';
foo();
too();
boo();
too();
moo();
xoo();
}
function test2(){
echo '<b>test2:</b><br>';
foo();
too();
zoo();
xoo();
}
이제 test1 ()을 호출하면 출력은 다음과 같습니다.
test1:
foo() is called
foo()->too() is called
foo()->boo() is called
foo()->too() is called
foo()->boo()->moo() is called
foo()->boo()->xoo() is called
test2 ()를 호출하면 출력은 다음과 같습니다.
test2:
foo() is called
foo()->too() is called
foo()->zoo() is called
zoo()->xoo() is called
그러나 재 선언 오류를 피하기 위해 text1 ()과 test2 ()를 동시에 호출 할 수는 없습니다.