私はOOPのコンセプトのWordPressプラグインを作っています。私はいくつかの有線の問題に直面しています。
まず私は今、私は私がmain-plugin.php
ファイル
の新しいファイルを言わせて中に含まれる他のクラスを保持している別のPHPファイルをこの
include_once plugin_dir_path(__FILE__) . 'something.php';
class something {
//some var
public $a;
private function __construct() { {
//all of my wordpress hook calls are here
}
public function foo() {
$this->a = 55; // this is working fine and not giving any error
}
}
のようなクラスを持っているmain-plugin.php
ファイルを持っていますsomething.php
であり、ここで私が持っている
class some {
//some variables
public $b, $c;
// now this this class when I'm doming
public function bar() {
$this->b =1; // this is giving me error saying this is not an object.
}
}
今、$this
がelseクラス内で動作しない理由がわかりません。また、これらの変数は静的変数ではないため、実際にはできません。self::$b
だから、他の誰かが、$this
を使わずにクラス内の非静的変数にアクセスする方法を教えてくれることを願っていました。
なぜあなたはそれを言っているのですか?クラス名だけを渡すことの問題は何ですか? – iSaumya
インスタンスを渡さないと、静的メソッドのように 'admin_scripts'メソッドが呼び出されます。ここで' $ this'は使用できません。私は、あなたのエラーが '致命的なエラー:キャッチされていないエラー:オブジェクトのコンテキストにないときに$ thisを使う 'と仮定しました。 – LiTe
はい。それは私が得ているエラーです。クラス名を渡すのではなく、他のクラスのメソッドを呼び出すたびに、そのクラスのオブジェクトを作成してオブジェクトを渡す必要があります。または、私のクラス内のすべてのもの(変数とメソッドの両方)を静的にしてから、クラス名で呼び出すだけです。私はこれがあなたが意味することを望んでいることを願っています。私があなたを正しく納得させるかどうか教えてください。 – iSaumya