首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >函数参数中的类型提示(魔术__call)抛出异常

函数参数中的类型提示(魔术__call)抛出异常
EN

Stack Overflow用户
提问于 2011-09-10 18:08:40
回答 2查看 1.8K关注 0票数 1

这个真的扰乱了我的头脑:

每当我尝试键入传递给类型为'string‘的函数的变量类型时,如下所示:

代码语言:javascript
运行
复制
public function __call( string $name , array $args ) {
    ...
}

我得到以下错误:

可捕获的致命错误:传递给ClassName::__call()的参数1必须是字符串的实例,即在line_number上的php_file_name中给出的字符串

哈?“必须是字符串的实例,字符串给定”?我不是传递了一根线吗?我真的不明白这个错误信息。

现在我的解决方案一直是这样的:

代码语言:javascript
运行
复制
public function __call( $name , array $args ) {
    if (!is_string($name)) { throw new Exception('$name must be a string');
}

然而,我的问题是,是否有一种方法可以在方法定义中而不是在方法本身中对其进行实际键入?

EN

Stack Overflow用户

发布于 2011-09-10 18:35:13

PHP不支持标量类型提示。只适用于对象和数组。PHP注释中的某个人编写了一种使用标量类型暗示的方法。因为此错误的类型为catchable fatal error。您可以定义您自己的错误处理程序,它允许您在某些条件下继续处理此错误。

http://www.php.net/manual/de/language.oop5.typehinting.php#83442

然而,它很慢,我不建议使用它。

票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7373624

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档