我正在尝试将一些php函数重写为标准类库作为静态方法,以便我的开发团队可以理解php函数。
以下是我目前的情况:
class StringUtil
{
public static function sprintf ($format, $args = null, ... $_)
{
return sprintf($format,$args,$_);
}
}
使用此方法声明,我应该能够正确使用splat operator
。
我的问题是如果没有参数使用超过$args
,则splat operator
应该失败,因为它声明为必需。
我正在寻找的是这样的,null
值作为splat operator
的默认参数传递:
class StringUtil
{
public static function sprintf ($format, $args = null, ... $_ = null)
{
return sprintf($format,$args,$_);
}
}
答案 0 :(得分:1)
class StringUtil
{
public static function sprintf($format)
{
$args = func_get_args();
$fmt = array_shift($args);
return vsprintf($fmt, $args);
}
}
UPD:
class StringUtil
{
public static function sprintf($fmt)
{
return call_user_func_array('sprintf', func_get_args());
}
}