"include"を使用してファイルからHTMLおよびPHPを読み込むPHPクラスがあります。そのファイル内で、ファイルを含むクラスオブジェクトにアクセスしたいが、 "致命的なエラー:非オブジェクト上のメンバー関数makeSizesSelect()を呼び出す..."というメッセージが表示される。PHPクラスにファイルがありますが、そのファイルはクラスにアクセスできない
私はグローバルを宣言しようとしましたが、私は考えていることすべてを試しました。私は含まれているオブジェクトにPHPコードをアクセスさせるためにインクルードするファイルを許可していないようです。
アイデア?
<?php
echo "version = ".$this->version;
?>
I:
class cdf {
public $version = 001;
public function cdf_shortcode($atts,$content)
{
$this->slog(2,"shortcode() case: show");
require('templates/container.php');
}
}
、必要なファイルcontainer.php(他のものの中で)次のものが含まれます。
はここ
クラスファイルが...抜粋ですオブジェクトを使用しようとします。
$cdf = new cdf();
$cdf->cdf_shortcode(null, null);
行$ this-> slog(2、 "shortcode()case:show")が機能します。それは(私はこのスニペットに含まれていない)その機能を実行します。しかし、私が必要とするファイル(またはインクルードするファイル)は$ thisを使ってオブジェクトにアクセスすることはできません。私は迷っている。 :-(
私がやりたいすべてが含まれたファイル内でのアクセス、ファイルが含まれていたクラスの変数やメソッド...
申し訳あり、いくつかの情報を追加しました。この場合、私はわからないんだけどすべての違いになります。上記のコードは、WordPressのプラグインのすべての部分である。
ファイルを含めるには十分ではありません、あなたはあなたのクラスをインスタンス化する必要があります。 – roberto06
$ obj = new cdf(); $ obj-> cdf_shortcode( ''、 '')のようなメンバ関数にアクセスして、クラスにアクセスするオブジェクトを作成していないので、クラスにアクセスするためのオブジェクトが作成されていないためです。 –
私が言ったように、ショートコード関数の最初の行は動作しますが、オブジェクトをインスタンス化しなかった場合はそうではありません – CraigD