与PHP略有混淆,因为它没有声明对象变量类型。 这是简化的代码,不起作用。我明白为什么我得到一个错误,但不知道如何在PHP中我可以指定$ pb是一个PushBot对象,所以它有可以使用的方法。
class Bot
{
public $pb;
//Constructor
function __construct(){
require_once('../PushBots.class.php');
// Application ID
$appID = '';
// Application Secret
$appSecret = '';
// Push The notification with parameters
$this ->pb = new PushBots();
$this ->pb->App($appID, $appSecret);
}
//Method. The $this->pb->Push() does not work
public function sendMessage(){
$this->pb->Push();
}
}
//客户端调用类
$bot = new Bot();
$bot->sendMessage();
我得到的错误是:
解析错误:语法错误,行
时意外'$'$this->pb->Push();
被召唤。
我猜它是因为它不知道$ pb在这个阶段是一个PushBot对象吗?
我是否可以声明:
Public Pushbot $pb;
答案 0 :(得分:1)
Parse error: syntax error, unexpected '$' for when the line
这是一个解析错误,这意味着您的代码甚至尚未运行。检查您的代码是否有任何sytnax错误(您发布的代码不包含语法错误)。
在PHP中如何指定$ pb是一个PushBot对象
虽然与语法错误无关,但如果使用某种依赖性反转,则可以使用类型提示来要求传递某个对象:
// will cause fatal error if anything other than an object of type Pushbot is passed
function __construct(Pushbot $pb)