使用PHP 7.1下的以下代码
class MySqlSessionHandler implements \SessionHandlerInterface {
public function read(string $session_id) : string { ... }
}
我明白了:
致命错误:Sessions \ MySqlSessionHandler :: read声明(字符串 $ session_id):字符串必须兼容 SessionHandlerInterface ::读($键)
当我删除类型声明" string"而是喜欢
public function read($session_id) : string { ... }
没有抛出任何异常。所有其他SessionHandlerInterface函数也会发生同样的情况。阅读PHP文档类型字符串应该是正确的。
有什么问题?
答案 0 :(得分:1)
该函数的原始签名不包含输入,因此当您添加“字符串”时它是不同的签名,因此您要么将“字符串”添加到接口签名中,要么从实现中删除