我是PHP的新手.那么我所指的文字说引用
函数可以在你的程序中的任何地方定义.
上面的语句适用于代码块1但不适用于代码块2. KINDLY EXPLAIN?
代码块1:
<?php
test();
function test()
{
echo "Hello Inside the function";
}
?>
Run Code Online (Sandbox Code Playgroud)
代码块2:
<?php
$no=1;
switch ($no)
{
case "1":
test();
function test()
{
echo "Hello test";
}
}
?>
Run Code Online (Sandbox Code Playgroud)
从理论上讲,可以在“任何地方”定义功能。在实践中,有一个窍门。技巧如下:当PHP读取并编译脚本的源代码时,它将查找函数定义,并且如果函数定义位于全局上下文中(而不是if,switch等内部),则将立即对其进行定义。但是,如果它在这样的构造内,或者在另一个函数等内,则仅当控件通过function()语句所在的行时才定义它。
因此,代码块1可以工作-因为该函数处于全局上下文中,所以PHP将在运行任何代码之前对其进行定义。但是在代码块2中,该函数在switch上下文中,因此仅当控制通过第7行时才定义该函数。但是由于您尝试在第6行调用它,因此尚未定义!所以PHP错误出来了。
这里的建议永远不要在条件等中定义函数。除非您将其定义为条件定义-然后注意不要在定义它们之前调用它们。
不能在语句中声明函数switch。
但是,您可以执行以下操作:
<?php
$no=1;
switch ($no)
{
case "1":
test();
break;
}
function test()
{
echo "Hello test";
}
?>
Run Code Online (Sandbox Code Playgroud)
只需从switch.
该函数仅在被调用时执行,因此无关紧要。
编辑
该引用 ( ) 的大概意思Functions can be defined anywhere within your program.是:
您可以在脚本中调用函数之前甚至之后声明它们。