thinkphp引入一个公共类,如何在其他方法里面不需要再实例化调用
程序员文章站
2024-01-23 15:29:58
...
thinkphp引入一个公共类,如何在其他方法里面不需要再实例化调用
text("hello, I'm wechat")->reply(); //在这里不能调用上面实例化的类 //如何操作才可以使用 } public function test(){ $weObj->text("hello, I'm wechat")->reply(); //在这里不能调用上面实例化的类 //如何操作才可以使用 }}
回复讨论(解决方案)
这就是个类 创建一个public 的变量....
怎么创建呢,我都试过好像不能继承
class WuyeController extends CheckController { protected $wechat; protected function _initialize(){ $token = 'weixin'; //微信后台填写的TOKEN $this->wechat = new Wechat($token); } public function index(){ $this->weObj->text("hello, I'm wechat")->reply(); } public function test(){ $this->weObj->text("hello, I'm wechat")->reply(); }}
谢谢回复,但是还是不行,提示Call to a member function text() on a non-object
那就是没有实例化成功
我用的类库是这个
https://github.com/dodgepudding/wechat-php-sdk
你的类库文件放在哪里,需要引入文件再试试,import or vendor。
类库是正确的,我在_initialize是可以正确引用的,但是放在其他方法里就不能引用
把初始化方法的protected 改为 public,然后按照三楼写的就对了
在 wechat-php-sdk-master 项目中没有找到 CheckController 类定义
也没找到 _initialize 方法的定义
你能确认 _initialize 在类实例化时就执行了吗?
token 作为身份认证,通常是动态发放的,你写死了可以吗?
_initialize 里可以直接用该类了
token 只是该类的一个参数,不加都可以,但是为什么在tp里面不能用呢
我看到了一个wechat和一个weobj...
weObj = new Wechat($token); } public function index(){ $this->weObj->text("hello, I'm wechat")->reply(); //在这里不能调用上面实例化的类 //如何操作才可以使用 } public function test(){ $this->weObj->text("hello, I'm wechat")->reply(); //在这里不能调用上面实例化的类 //如何操作才可以使用 } }