PHP声明函数时参数的顺序

PHP声明函数时参数的顺序,php,Php,这是一个好奇的问题。在创建函数时,是否有推荐的方法对参数进行排序?我的意思是,如果我要创建一个接收3个参数的函数,比如说int$a,$str b和$mixed$c,有理由选择一个订单而不是另一个订单吗?比如说,你更喜欢函数f($a,$b,$c)而不是函数f($c,$b,$c)?像参数类型或其他什么 我知道可选参数必须始终在末尾,但除此之外,是否有任何标准或实用建议会影响性能或其他方面 简而言之,我只想知道函数参数的顺序是否总是任意的 注意:我的问题是关于何时只声明函数。它们是相对随意的,但是我看

这是一个好奇的问题。在创建函数时,是否有推荐的方法对参数进行排序?我的意思是,如果我要创建一个接收3个参数的函数,比如说
int$a
$str b
$mixed$c
,有理由选择一个订单而不是另一个订单吗?比如说,你更喜欢函数f($a,$b,$c)而不是函数f($c,$b,$c)?像参数类型或其他什么

我知道可选参数必须始终在末尾,但除此之外,是否有任何标准或实用建议会影响性能或其他方面

简而言之,我只想知道函数参数的顺序是否总是任意的


注意:我的问题是关于何时只声明函数。

它们是相对随意的,但是我看到了两种主要的方法。最不常见的是“使用顺序”,这仅在顺序函数中有意义,其中
$this
位于
$that
之前

然而,典型的方法是按照“最重要的”或必需的参数。您不需要
重要、可选、可选、可选、可选、可选、重要
——因为这样您需要将可选项设置为
'
,以便定义最后一个重要项

函数测试($data\u key,$number\u of\u results=5,$classes='''{}
这样的东西是有意义的,因为您可以调用
测试('my\u key')并获得可论证的可用结果


其中,如果是
函数测试($number\u of_results=5,$classes='',$data\u key){}
,您将在
data\u key
之前设置必需的半可选参数,从某种意义上讲,它们必须首先传递给函数:
测试(5,,'my\u key')

除了必须在末尾的可选参数外,参数的顺序实际上并不重要

就拿这个例子来说

function f($a, $b) { return $a - $b; }
这是相同的函数,具有不同的阶参数

function f($b, $a) { return $a - $b; }
你看。即使顺序参数不同,这两个函数也返回相同的值


简而言之,您只需要处理强制参数和可选参数。强制参数总是在可选参数之前声明。强制参数之间的顺序根本不重要。可选参数也是如此。

最重要的是一致性和满足合理预期。你真的希望人们避免猜测哪个论点是哪个论点

function f($b, $a) { return $a - $b; }
例如,糟糕的设计:

function add($list, $item)
function delete($item, $limit, $list)
function insert($count, $item, $list)
function push($item, $list)
相反,尝试保持事情的一致性:

function add($list, $item)
function delete($list, $item, $limit)
function insert($list, $item, $count)
function push($list, $item)
您还可以根据函数名的详细程度,在函数名中传达期望值:

function deleteFrom($list, $item)
或者,如果您喜欢不同的订单:

function insertItemInto($item, $list)
在实际使用中,您会看到使用具有类似名称的变量调用它,这样代码的可读性更好


订单对性能没有具体影响。只有可读性和理解力。

就理解而言,顺序很重要。如果这是
mb
,并且参数顺序是
$b,$a
,那么它将是令人困惑的。根本不影响结果。我认为OP不会询问函数名和顺序参数之间的相关性。