PHP中的前向声明(函数)示例?
我之所以发布这篇文章,是因为它在Google或php.net上并不明显 ==>请用PHP语言演示正向声明函数的语法的几个示例 例如(在C++中):PHP中的前向声明(函数)示例?,php,Php,我之所以发布这篇文章,是因为它在Google或php.net上并不明显 ==>请用PHP语言演示正向声明函数的语法的几个示例 例如(在C++中): 这在PHP中会是什么样子?多个参数怎么样?使用默认参数怎么样?最佳实践是什么?为什么?您不需要在PHP中进行前向声明,而是需要在当前脚本(即使在调用之后)或任何包含/必需的脚本中声明函数,前提是在调用函数之前执行include/require语句 没有提前声明 如果在当前脚本上,甚至在最后,在调用之后:it'ok 如果它位于当前脚本包含/需要的脚本上
这在PHP中会是什么样子?多个参数怎么样?使用默认参数怎么样?最佳实践是什么?为什么?您不需要在PHP中进行前向声明,而是需要在当前脚本(即使在调用之后)或任何包含/必需的脚本中声明函数,前提是在调用函数之前执行include/require语句 没有提前声明 如果在当前脚本上,甚至在最后,在调用之后:it'ok 如果它位于当前脚本包含/需要的脚本上,则应该在调用函数之前执行INCLUDE/REQUIRE语句
如果它位于包含/需要当前脚本的脚本上:它可以(即使在INCLUDE/REQUIRE语句之后声明)它不仅仅是
$x = foo();
function foo() {
return 5;
}
echo $x; //echos "5"
?PHP不进行函数声明(或“函数原型设计*)。我们最接近的东西是对象接口和抽象方法。它们被称为“方法原型”或“方法声明”(声明与定义相反,带有c风格的语义)
我们没有/不需要前向声明函数的原因之一是php每次编译脚本之前都会对脚本进行解析。它会在开始执行文件之前找到您的函数,因此它知道它们就在那里。事实上,我记不起您要走多远,甚至在调用函数之前必须定义函数。我做了9年的PHP,这是不需要的:-)如果你想让一个函数在PHP中返回一个特定的类型值,你可以使用这样的东西
function foo($param) {
// code
return (int) $param; // or (string), (float)
}
或者,当您访问该功能时:
$x = (int) foo($param);
参照默认参数,您可以这样做
function foo( $param1="value1" , $param2="value2" ){
echo $param1." ".$param2;
}
foo();
foo("not default","not default");
foo(NULL,"not default");
我要说的是,所要求的示例并不是证明需要转发声明的最佳示例。比如,我们需要以下内容:
function foo($n) {
echo 'Foo';
if($n>0) bar($n-1);
}
function bar($n) {
echo 'Bar';
if($n>0) foo($n-1);
}
foo(200);
上面的代码在PHP中运行良好,尽管在foo中有“undefined”函数bar
所以答案是:
function foo( $param1="value1" , $param2="value2" ){
echo $param1." ".$param2;
}
foo();
foo("not default","not default");
foo(NULL,"not default");
function foo($n) {
echo 'Foo';
if($n>0) bar($n-1);
}
function bar($n) {
echo 'Bar';
if($n>0) foo($n-1);
}
foo(200);