我有一个看起来像这样的函数
class NSNode {
function insertAfter(NSNode $node) {
...
}
}
我希望能够使用该函数来指示节点是在开头插入的,因此它在nothing 之后。我的想法是 null
表示“无”,所以我会这样编写我的函数调用:
$myNode->insertAfter(null);
除了 PHP 会抛出一个错误,指出它需要一个 NSNode
对象。我想在我的函数中坚持使用严格的数据类型,但希望能够指定一个空值。
那么,除了将其更改为 function insertAfter($node) { }
之外,有没有办法将其他内容传递给该函数?
更新:我接受了 Owen 的回答,因为它本身就回答了问题。其他人的建议都非常好,我会在这个项目中实际实现它们,谢谢!
最佳答案
确定,只需设置一个默认的“null”
function(NSNode $node = null) {
// stuff....
}
结果是:
$obj->insertAfter(); // no error
$obj->insertAfter(new NSNode); // no error
$obj->insertAfter($somevar); // error expected NSNode
关于PHP5 : Specifying a datatype in method parameters,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/181209/