PHP将默认参数传递给函数

ari*_*rik 9 php default function

我有一个PHP函数,像这样:

function($foo = 12345, $bar = false){}
Run Code Online (Sandbox Code Playgroud)

我想做的是调用这个函数,使用$ foo传递的默认参数,但是$ bar设置为true,就像这样(或多或少)

function(DEFAULT_VALUE, true);
Run Code Online (Sandbox Code Playgroud)

我该怎么做?如何在不知道该值的情况下将参数作为函数的默认值传递?

提前致谢!

Pek*_*ica 11

这在PHP中本身不可能.有一些解决方法,比如使用数组来传递所有参数而不是一行参数,但它们有很大的缺点.

我能想到的最佳手动解决方法是定义一个具有任意值的常量,该值不会与实际值发生冲突.例如,对于永远不会是的参数-1:

define("DEFAULT_ARGUMENT", -1);
Run Code Online (Sandbox Code Playgroud)

并测试:

function($foo = DEFAULT_ARGUMENT, $bar = false){}
Run Code Online (Sandbox Code Playgroud)