错误:
Parse error: syntax error, unexpected T_STRING, expecting T_VARIABLE in
PSubscriptionFile.php on line 90;
Run Code Online (Sandbox Code Playgroud)
我认为public static _fromJSON应该是公开的
static function _fromJSON
Run Code Online (Sandbox Code Playgroud)
但这会给致命错误:
Declaration of PSubscriptionFile::__construct() must be compatible with that of
PuSHSubscriptionInterface::__construct() in PSubscriptionFile.php on line 9
Run Code Online (Sandbox Code Playgroud)
文件:http://github.com/bobdia/PuSHSubscriber
我不明白如何修复错误.谢谢!
Gor*_*don 12
你写了
public static _fromJSON($data) {
Run Code Online (Sandbox Code Playgroud)
代替
public static function _fromJSON($data) {
Run Code Online (Sandbox Code Playgroud)
解决此问题时遇到的致命错误是因为您的构造函数签名与接口 所需的构造函数签名不同,该签名PuSHSubscriptionInterface位于PuSHSubscriber.php的底部.
public function __construct(
$domain, $subscriber_id, $hub,
$topic, $secret, $status = '',
$callback_url, $verify_token, $lease_time='');
Run Code Online (Sandbox Code Playgroud)
而你的是
public function __construct(
$domain, $subscriber_id, $hub,
$topic, $secret, $status = '',
$callback_url, $verify_token, $lease_time)
Run Code Online (Sandbox Code Playgroud)
你做了最后一个论证.PHP手册中的注释清楚地说:
实现接口的类必须使用与接口中定义的完全相同的方法签名.不这样做会导致致命错误.
接口的重点是合同.实现此合同的类可能不会更改接口定义的方法签名,因为这会破坏合同并破坏接口的用途.
当界面IFoo说你应该有
public function fn($arg1, $arg2, $arg3 = NULL);
Run Code Online (Sandbox Code Playgroud)
然后每个IFoo实现的类都必须实现接口中定义的方法.
| 归档时间: |
|
| 查看次数: |
280 次 |
| 最近记录: |