php.net 上的函数签名是什么意思


What do the function signatures on php.net mean?

例如,当我查看系统功能的文档时:它说:

字符串系统 ( 字符串 $command [, int &$return_var ] )

这是什么意思?谢谢

所以对于以下部分:

string system ( string $command [ , int & $return_var ]  )
1      2      3 4      5        6 7 8   9 10          11 12

挨次:

  1. 字符串 - 返回类型
  2. 系统 - 命令名称
  3. ( - 函数参数的开头
  4. 字符串 - 第一个参数的类型
  5. $command - 第一个参数的名称(这只是一个提示,它不会影响你调用函数的方式)
  6. [ - 可选参数的开头
  7. , - 这是为了表明你用逗号分隔参数
  8. int - 第一个可选参数的类型
  9. &-表示第一个可选参数将通过引用传递(函数可以修改传递的变量**)
  10. $return_var - 第一个可选参数的名称
  11. ] - 可选参数的结尾
  12. ) - 函数参数的结尾

它暗示了调用该函数可能需要什么。因此,从语法上讲,以下内容是可以的:

$return_type = 1;
system("String!", $return_type);
//$return_type could have changed
system("String!", $return_type);
system("String!");

但以下不是:

system();
system($var_that_wont_cast_to_string);

** PHP 文档通过引用传递:http://php.net/manual/en/language.references.pass.php

表示函数名称为 system(),这些是该函数的参数和类型。

在这种情况下,字符串$command是必需的(并且您需要传递有效的字符串值)。当你有括号时,比如 in (&$return_var) 是一个可选参数(并表示变量将作为引用传递,因此返回值将位于你传递给函数的变量上)。

有关 php.net 本身给出的描述,请参阅此处:

http://php.net/manual/en/about.prototypes.php

stringint的列表告诉您它期望什么类型的值。 它期望system是类型 string ,依此类推。 如果您为system 设置int,则会收到错误