私は現在、カスタムプラグインを書くためのオブジェクト指向プログラミングを学んでいます。クラス内の変数にアクセスできるようにしたいと思います。クラスPHPから変数を返す
例えば私のクラスでは、この
class GeoSlugArray {
var $geoslugarray = array (
'london',
'manchester'
);
static function lnz_wc_memberships_get_geoslugarray() {
return $this->geoslugarray;
}
}
のようになります。そして、私はこのような機能に/ページ上でそれを使用します。
$slugs = GeoSlugArray::lnz_wc_memberships_get_geoslugarray();
print_r($slugs);
をしかし、これは、私は致命的なを取得する動作しません。エラー:
Fatal error: Uncaught Error: Using $this when not in object context in /home/benefacto/public_html/dev/wp-content/plugins/bnfo-custom-memberships/includes/class-bnfo-wc-memberships-geoslug.php:28 Stack trace
私はこれを新しいインスタンスを作成することで動作させることができます。
$request = new GeoSlugArray();
$slugs = $request->lnz_wc_memberships_get_geoslugarray();
しかし、私はそれがclunkyだと思う。どんな考えでも大歓迎です。コメントに記載溶液に次に
$geoSlugArray
どのようにあなたのエラーテキストをグーグルでは?または、あなたはこのエラーに会ったと思いますか? –静的に使用されている場合、 '$ this-> var'を' self :: var'に置き換えてください。 – Jeff
最初の '$ geoslugarray'も' public static'( 'var'は時代遅れです)にする必要があります。 'public static function'も指定してください(明確にするため)。最後に、実際にエラーを修正するには、 'self :: $ geoslugarray'を返すべきです。 –