我有一个看起来像这样的功能
class NSNode { function insertAfter(NSNode $node) { ... } }
我希望能够使用该函数来指示节点是在开始时插入的,因此它什么也没有.我想到的方式null
就是"没有",所以我会像这样写我的函数调用:
$myNode->insertAfter(null);
除了PHP抛出一个错误,说它期待一个NSNode
对象.我想坚持在我的函数中使用严格的数据类型,但希望能够指定null-esque值.
因此,如果没有将其更改为function insertAfter($node) { }
,有没有办法可以将其他内容传递给该函数?
更新:我接受了欧文的答案,因为它回答了问题本身.其他人的建议都非常好,我将在这个项目中实施它们,谢谢!
当然,只需设置默认值"null"
function(NSNode $node = null) { // stuff.... }
结果是:
$obj->insertAfter(); // no error $obj->insertAfter(new NSNode); // no error $obj->insertAfter($somevar); // error expected NSNode