Heim >Backend-Entwicklung >PHP-Problem >So passen Sie eine Methode in PHP an

So passen Sie eine Methode in PHP an

藏色散人
藏色散人Original
2020-08-12 09:25:242774Durchsuche

在PHP中可以通过【function foo($arg_1, $arg_2, /* ..., */ $arg_n){echo "Example function.n";return $retval;}】形式定义一个方法。

So passen Sie eine Methode in PHP an

推荐:《PHP视频教程

用户自定义函数 

一个函数可由以下的语法来定义:

Example #1 展示函数用途的伪代码

<?php
function foo($arg_1, $arg_2, /* ..., */ $arg_n)
{
    echo "Example function.\n";
    return $retval;
}
?>

任何有效的 PHP 代码都有可能出现在函数内部,甚至包括其它函数和类定义。

函数名和 PHP 中的其它标识符命名规则相同。有效的函数名以字母或下划线打头,后面跟字母,数字或下划线。可以用正则表达式表示为:^[a-zA-Z_x80-xff][a-zA-Z0-9_x80-xff]*$。

Tip

请参见用户空间命名指南。

函数无需在调用之前被定义,除非是下面两个例子中函数是有条件被定义时。

当一个函数是有条件被定义时,必须在调用函数之前定义。

Example #2 有条件的函数

<?php
$makefoo = true;
/* 不能在此处调用foo()函数,
   因为它还不存在,但可以调用bar()函数。*/
bar();
if ($makefoo) {
  function foo()
  {
    echo "I don&#39;t exist until program execution reaches me.\n";
  }
}
/* 现在可以安全调用函数 foo()了,
   因为 $makefoo 值为真 */
if ($makefoo) foo();
function bar()
{
  echo "I exist immediately upon program start.\n";
}
?>

Example #3 函数中的函数 p>

<?php
function foo()
{
  function bar()
  {
    echo "I don&#39;t exist until foo() is called.\n";
  }
}
/* 现在还不能调用bar()函数,因为它还不存在 */
foo();
/* 现在可以调用bar()函数了,因为foo()函数
   的执行使得bar()函数变为已定义的函数 */
bar();
?>

PHP 中的所有函数和类都具有全局作用域,可以定义在一个函数之内而在之外调用,反之亦然。

PHP 不支持函数重载,也不可能取消定义或者重定义已声明的函数。

Note: 从 A 到 Z 的 ASCII 函数名是大小写无关的,不过在调用函数的时候,使用其在定义时相同的形式是个好习惯。

PHP 的函数支持可变数量的参数和默认参数。参见 func_num_args(),func_get_arg() 和 func_get_args()。

在 PHP 中可以调用递归函数。

Example #4 递归函数

<?php
function recursion($a)
{
    if ($a < 20) {
        echo "$a\n";
        recursion($a + 1);
    }
}
?>

Note: 但是要避免递归函数/方法调用超过 100-200 层,因为可能会使堆栈崩溃从而使当前脚本终止。 无限递归可视为编程错误。

Das obige ist der detaillierte Inhalt vonSo passen Sie eine Methode in PHP an. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn