thinkphp ではパブリック クラスが導入されており、インスタンス化や呼び出しを行わずに他のメソッドでそれを使用する方法が紹介されています。

WBOY
リリース: 2016-06-23 13:36:52
オリジナル
1173 人が閲覧しました

Thinkphp はパブリック クラスを紹介し、インスタンス化や他のメソッドの呼び出しを行わずにパブリック クラスを使用する方法を説明します

<?phpnamespace Index\Controller;use Think\Controller;use Com\Wechat;class WuyeController extends CheckController {   protected function _initialize(){ 		$token = 'weixin'; //微信后台填写的TOKEN 		$wechat = new Wechat($token); 	} 	public function index(){		 $weObj->text("hello, I'm wechat")->reply();		 //在这里不能调用上面实例化的类		 //如何操作才可以使用	 }	    public function test(){		 $weObj->text("hello, I'm wechat")->reply();		 //在这里不能调用上面实例化的类		 //如何操作才可以使用    }}
ログイン後にコピー





ディスカッション (解決策) への返信

これはクラスです パブリック変数を作成します... 。

作成方法、試してみましたが、継承できないようです

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();    }}
ログイン後にコピー

ご返信ありがとうございますが、まだ機能しません。オブジェクト

つまり、インスタンス化が成功しなかったことを意味します

私が使用するクラス ライブラリはこれです

https://github.com/dodgepudding/wechat-php-sdk

クラス ライブラリ ファイルはどこにありますか?ファイルを作成して、インポートまたはベンダーを再試行してください。

クラスライブラリは正しく、_initialize では参照できますが、他のメソッドでは参照できません

初期化メソッドの protected を public に変更し、3 階に書かれているとおりにします。 Wechat-php-sdk-master プロジェクト内に CheckController クラス定義が見つかりませんでした

、また _initialize メソッドの定義も見つかりませんでした

クラスがインスタンス化されるときに _initialize が実行されることを確認できますか?

トークンは通常、ID 認証として動的に発行されます。それを書き留めることはできますか?


_initialize でこのクラスを直接使用できます
token はこのクラスの単なるパラメータであり、追加せずに使用できますが、なぜ tp では使用できないのですか?

wechat と weobj を見ました。 ..

りー

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート