PHP中的前向声明(函数)示例?

Fel*_*ler 4 php

我发布这个是因为它在Google或php.net上并不明显

==> 请示范的几个例子语法向前声明功能,在PHP语言.

例如(在C++中):

int foo(); // forward declaration

int x = foo(); // calling the function.

int foo()  // the actual implementation
{
   return 5;
}
Run Code Online (Sandbox Code Playgroud)

这看起来如何用PHP?多个参数怎么样?默认参数怎么样?最佳做法是什么?为什么?

Par*_*lis 9

你不需要在PHP中进行前向声明,而是需要在当前脚本中声明函数(即使它是在调用之后),或者在任何包含/必需的脚本中,给出执行include/require语句在你调用这个函数之前.

没有前瞻性声明.

如果在当前脚本上,即使在最后,在调用之后:它还可以

如果当前脚本在脚本INCLUDEd/REQUIREd上,则应在调用函数之前执行INCLUDE/REQUIRE语句.

如果它在一个脚本上包含/请求当前脚本:它没问题(即使在INCLUDE/REQUIRE语句之后声明)


Axe*_*xel 5

我想说所请求的示例并不是证明前向声明的必要性的最佳示例。比如说,我们需要以下内容:

function foo($n) {
  echo 'Foo';
  if($n>0) bar($n-1);
}
function bar($n) {
  echo 'Bar';
  if($n>0) foo($n-1);
}
foo(200);
Run Code Online (Sandbox Code Playgroud)

尽管foo中存在“未定义”函数bar,但上面的代码在 PHP 中完美运行。看来 PHP 在调用函数时会检查函数定义。

所以答案是:

  1. PHP 没有前向声明。
  2. 该函数不必在出现在文本中之前定义,但必须在调用之前定义。