PHP:传递默认值而不是引用

Rol*_*uhs 2 php

我有这样的功能(使用PHP 7.1):

function myfunction(&$first = null, $second = null)
{   // do something
}
Run Code Online (Sandbox Code Playgroud)

我想要实现的是传递null作为第一个参数并传递一些东西作为第二个参数:

myfunction(null, $something);
Run Code Online (Sandbox Code Playgroud)

当我这样做时,我得到" 只有变量可以通过引用传递 "错误.

但当然null是第一个参数的默认值,所以当然该函数被设计为处理null作为第一个参数.

有办法吗?

(有一个类似的问题,但它包含大量不相关的字符串和参数,因此难以阅读,它也没有提到触发的错误,因此任何会遇到它的人都找不到它问题.)

meg*_*382 5

null您可以发送未声明的变量,而不是发送,例如(DEMO):

<?php
function myfunction(&$first = null, $second = null)
{   // do something
}
myfunction($null, $something);
Run Code Online (Sandbox Code Playgroud)

这将用于执行函数而不破坏您的代码.