作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
PHP 中是否可以在调用函数/方法时指定命名可选参数,跳过您不想指定的参数(就像在 python 中一样)?
类似于:
function foo($a, $b = '', $c = '') {
// whatever
}
foo("hello", $c="bar"); // we want $b as the default, but specify $c
最佳答案
PHP 8.0 添加了对命名参数的支持,接受 an RFC .
Named arguments are passed by prefixing the value with the parameter name followed by a colon. Using reserved keywords as parameter names is allowed. The parameter name must be an identifier, specifying dynamically is not allowed.
例如在示例中仅传递第三个可选参数:
foo(timeout: 3);
在 PHP 8 之前,PHP 中无法使用命名参数。从技术上讲,当您调用 foo($timeout=3)
时,它首先评估 $timeout=3
,结果为 3
并将其传递为foo()
的第一个参数。 PHP 强制执行参数顺序,因此类似的调用需要为 foo("", "", $timeout=3)
。您还有另外两个选择:
func_get_args()
向 PHP 询问参数或使用 ...
variable length arguments feature在 PHP 5.6+ 中。根据参数的数量,您可以决定如何处理每个参数。许多 JQuery 函数都会执行类似的操作。这很简单,但对于那些调用函数的人来说可能会感到困惑,因为它也不是自记录的。而且你的论点仍然没有被命名。关于php - PHP 是否允许命名参数,以便可以在函数调用中省略可选参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19126860/
我正在尝试用 Swift 编写这段 JavaScript 代码:k_combinations 到目前为止,我在 Swift 中有这个: import Foundation import Cocoa e
我是一名优秀的程序员,十分优秀!