PHP代码中的错误

PHP代码中的错误,php,Php,错误: Parse error: syntax error, unexpected T_STRING, expecting T_VARIABLE in PSubscriptionFile.php on line 90; 我认为来自JSON的public static应该是public的 static function _fromJSON 但这会带来致命的错误: Declaration of PSubscriptionFile::__construct() must be compati

错误:

Parse error: syntax error, unexpected T_STRING, expecting T_VARIABLE in
 PSubscriptionFile.php on line 90; 
我认为来自JSON的public static应该是public的

static function _fromJSON 
但这会带来致命的错误:

Declaration of PSubscriptionFile::__construct() must be compatible with that of 
PuSHSubscriptionInterface::__construct() in PSubscriptionFile.php on line 9
文件:

我不知道如何修复错误。谢谢

你写的

public static _fromJSON($data) {
而不是

public static function _fromJSON($data) {
修复此问题时出现的致命错误是,您的构造函数签名与
PuSHSubscriptionInterface
所需的构造函数签名不同,后者定义在

而你的是

public function __construct(
    $domain, $subscriber_id, $hub, 
    $topic, $secret, $status = '', 
    $callback_url, $verify_token, $lease_time)
你提出了最后一个必要的论点。清楚地说:

实现接口的类必须使用与接口中定义的方法签名完全相同的方法签名。不这样做将导致致命错误

接口的要点是有一个合同。实现此契约的类可能不会更改接口定义的方法签名,因为这将破坏契约并破坏接口的用途

当界面
IFoo
说您应该

public function fn($arg1, $arg2, $arg3 = NULL);
然后,实现IFoo的每个类都必须实现接口中定义的方法。

public static _fromJSON($data) {
而不是

public static function _fromJSON($data) {
修复此问题时出现的致命错误是,您的构造函数签名与
PuSHSubscriptionInterface
所需的构造函数签名不同,后者定义在

而你的是

public function __construct(
    $domain, $subscriber_id, $hub, 
    $topic, $secret, $status = '', 
    $callback_url, $verify_token, $lease_time)
你提出了最后一个必要的论点。清楚地说:

实现接口的类必须使用与接口中定义的方法签名完全相同的方法签名。不这样做将导致致命错误

接口的要点是有一个合同。实现此契约的类可能不会更改接口定义的方法签名,因为这将破坏契约并破坏接口的用途

当界面
IFoo
说您应该

public function fn($arg1, $arg2, $arg3 = NULL);

然后,实现IFoo的每个类都必须实现接口中定义的方法。

我只是对提到的问题做了一些后续工作

  • 原始源代码“PSubscriptionFile.php”()第90行有错误。 您可以修改

    public static _fromJSON($data) {
    

  • 然后,按照Gordon的建议,修改“PSubscriptionFile.php”的第35行

    到(看这行的末尾)

  • 现在,您可能会看到错误消息(可能略有不同)

    *注意:假设所有的文件都放在目录“pubsub”中。目录“www”是apache服务器的目录

    这告诉您需要一个包含所有*.pubsub文件的目录。 因此,请查看第24行的源代码文件“index.php”()。 代码显示目录的名称应该是“example_subs”

    然后,在路径C:\www\pubsub\example\subscriptions上创建“example\u subs”空目录

    最后,在订阅之后,您将在目录C:\www\pubsub\example\subscriptions\example\u subs上找到一个名为NUMBER.pubsub(例如:1.pubsub)的文件

  • $domain = 'example_subs';
    

    我只是对提到的问题做了一些跟进

  • 原始源代码“PSubscriptionFile.php”()第90行有错误。 您可以修改

    public static _fromJSON($data) {
    

  • 然后,按照Gordon的建议,修改“PSubscriptionFile.php”的第35行

    到(看这行的末尾)

  • 现在,您可能会看到错误消息(可能略有不同)

    *注意:假设所有的文件都放在目录“pubsub”中。目录“www”是apache服务器的目录

    这告诉您需要一个包含所有*.pubsub文件的目录。 因此,请查看第24行的源代码文件“index.php”()。 代码显示目录的名称应该是“example_subs”

    然后,在路径C:\www\pubsub\example\subscriptions上创建“example\u subs”空目录

    最后,在订阅之后,您将在目录C:\www\pubsub\example\subscriptions\example\u subs上找到一个名为NUMBER.pubsub(例如:1.pubsub)的文件

  • $domain = 'example_subs';
    

    github文件中的第90行为空。请复制并粘贴相关代码(第90行+前后3行),其中第90行在github文件中为空。请在此处复制并粘贴相关代码(第90行+前后3行)