PHP5 : Specifying a datatype in method parameters

标签 php parameters

我有一个看起来像这样的函数

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/

相关文章:

php - 即使使用了我在网上发现的所有技巧,警告也没有得到抑制

php - 将文件字段作为字符串提交的表单

ios发送带有POST参数的POST请求

php - 在表中保存数据时出错(codeigniter)

php - 在表格 Prestashop 中显示产品属性

php - mysql查询仅询问第二个表如果! =""

java - android 将 String 数组和 String 传递给 asyncTask

C++ - const 参数和类变量是悲观化的吗?

templates - Azure DevOps 管道 : same template twice in one stage

javascript - Dojo 函数参数顺序