lest assume that i have the following
function a(){
function b(){}
}
a(); //pass
a(); //error
why in the second call an exception is thrown and it says
cannot re-declare function b()
i thought that each function call makes a new active record that it contains its own scope ;
like in other languages other that PHP when we declare a variable in a function and called that function all the variables are alive for their scope, why the inner function is not the same ?
Named functions are always global in PHP. You will therefore need to check if function B has already been created:
A different solution is to use an anonymous function (this will more likely fit your needs, as the function is now stored in a variable and therefore local to the function scope of A):