为了账号安全,请及时绑定邮箱和手机立即绑定

类型提示返回值和使用语句的问题

类型提示返回值和使用语句的问题

PHP
牛魔王的故事 2022-07-09 10:03:47
我试图弄清楚为什么我的代码中出现此错误。这是代码:<?phpnamespace Db;use \PDO\PDOStatement;function getStmt(string $sql, $pdo): PDOStatement{    $stmt = $pdo->prepare($sql);    return $stmt;}这是错误:TypeError: Db\getStmt() 的返回值必须是 PDO\PDOStatement 的实例,返回 PDOStatement 的实例use 语句似乎搞乱了返回类型的检查。如果我去掉 use 语句,错误看起来像这样,因为现在它假定 PDOStatment 是当前命名空间的一部分:TypeError: Db\getStmt() 的返回值必须是 Db\PDOStatement 的实例,返回 PDOStatement 的实例如果我摆脱了命名空间和 use 语句,它不会抱怨,但我想要这两个语句,并且真的不明白原始代码有什么问题。
查看完整描述

1 回答

?
泛舟湖上清波郎朗

TA贡献1818条经验 获得超3个赞

您的返回类型是正确的,但$pdo->prepare返回\PDOStatement的是不正确的\PDO\PDOStatement$pdo给出一个类型会有所帮助。

这就是为什么如果将返回类型更改为\PDOStatement.


查看完整回答
反对 回复 2022-07-09
  • 1 回答
  • 0 关注
  • 77 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信