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

PHP中的前向声明(函数)示例?,php,Php,我之所以发布这篇文章,是因为它在Google或php.net上并不明显 ==>请用PHP语言演示正向声明函数的语法的几个示例 例如(在C++中): 这在PHP中会是什么样子?多个参数怎么样?使用默认参数怎么样?最佳实践是什么?为什么?您不需要在PHP中进行前向声明,而是需要在当前脚本(即使在调用之后)或任何包含/必需的脚本中声明函数,前提是在调用函数之前执行include/require语句 没有提前声明 如果在当前脚本上,甚至在最后,在调用之后:it'ok 如果它位于当前脚本包含/需要的脚本上

我之所以发布这篇文章,是因为它在Google或php.net上并不明显

==>请用PHP语言演示正向声明函数的语法的几个示例

例如(在C++中):


这在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

所以答案是:

  • PHP没有正向声明
  • 该函数不必 在它出现在文本中之前,必须对其进行定义,但必须对其进行定义 在它被调用之前
  • 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);