相关疑难解决方法(0)

PHP默认函数参数值,如何为'not last'参数"传递默认值"?

我们大多数人都知道以下语法:

function funcName($param='value'){
    echo $param;
}
funcName();

Result: "value"
Run Code Online (Sandbox Code Playgroud)

我们想知道如何为'not last'参数传递默认值?我知道这个术语很遥远,但一个简单的例子是:

function funcName($param1='value1',$param2='value2'){
    echo $param1."\n";
    echo $param2."\n";
}
Run Code Online (Sandbox Code Playgroud)

我们如何完成以下任务:

funcName(---default value of param1---,'non default');

Result:

value1
not default
Run Code Online (Sandbox Code Playgroud)

希望这是有道理的,我们希望基本上假设不是最后的参数的默认值.

谢谢.

php parameters default function

46
推荐指数
3
解决办法
3万
查看次数

命名PHP可选参数?

在PHP 4/5中是否可以在调用时指定一个命名的可选参数,跳过你不想指定的参数(比如在python中)?

就像是:

function foo($a,$b='', $c='') {
    // whatever
}


foo("hello", $c="bar"); // we want $b as the default, but specify $c
Run Code Online (Sandbox Code Playgroud)

谢谢

php default-value

21
推荐指数
3
解决办法
9224
查看次数

调用函数时使用默认值

在PHP中,您可以调用函数.通过使用这些语句不调用所有参数.

function test($t1 ='test1',$t2 ='test2',$t3 ='test3')
{
echo "$t1, $t2, $t3";
}
Run Code Online (Sandbox Code Playgroud)

你可以使用这样的功能

test();
Run Code Online (Sandbox Code Playgroud)

所以我只想说我希望最后一个是不同的而不是其他的.我能做到的唯一方法是做到这一点,但没有成功:

test('test1','test2','hi i am different');
Run Code Online (Sandbox Code Playgroud)

我试过这个:

test(,,'hi i am different');
test(default,default,'hi i am different');
Run Code Online (Sandbox Code Playgroud)

做这样的事情的最佳方法是什么?

php default-arguments

14
推荐指数
3
解决办法
2万
查看次数

PHP 7+ 中的命名参数解决方案

如何在 PHP 7+ 中实现命名参数功能?

理想的语法是:

find($wildcard, relative = true, listIfEmpty = false) {
    ...
}
Run Code Online (Sandbox Code Playgroud)

但是没有这样的解决方案。在答案中,我实现了最短的解决方案,支持:

  • 重构
  • 参数和函数结果的类型提示
  • 可重用参数集
  • 类型安全参数
  • 参数的默认值
  • 每个参数的 Getter(无硬编码字符串)
  • 非常简单的 setter/getter,您只需为每个参数更改一个名称

有关更多信息和实施,请参阅答案

php parameter-passing named-parameters php-7

5
推荐指数
1
解决办法
1843
查看次数