申し訳ありませんが、私はかなりコードをダウンダンプしました... 私が達成しようとしていることが可能かどうかわかりません。関数内でインクルードするとき、インクルードの前に宣言された変数にアクセスするにはどうしたらいいですか?
私は、私は1つのパラメータ
Class Example{
public function Template($root){
include ROOT."/templates/{$root}.php";
}
}
私は製品の配列を持っていテンプレートと呼ばれる機能を用いて、実施例と呼ばれるクラスクラスをインスタンス化し、ここで
$products = array("garbage");
$test = new Example;
$test->Template("product");
テンプレート関数を実行しました/templates/product.phpのコピー例です。
print 'Test';
print_r($products);
私は戻ってきます"Test"と表示されるが、テンプレート機能の前に定義された$products
配列にアクセスすることはできません。
私が直接include ROOT."/templates/product.php";
ルートに行くと、すべて動作します。
関数内からincludeを使用することはできませんか?
これは配列です(またはそうでなければなりません) 固定 – FuckYou
問題はありません。質問を理解できませんでした。なぜなら、私が直接インクルードで結果を得ることができたからです明らかに、配列は配列であり、あたかも既に定義されているかのように、ここではホルダーとして配置されただけです。とにかく、ありがとう。私はこれを更新しました – FuckYou
'正しい'答えは、コンストラクタを介してクラスに配列を渡すことです...しかし、グローバル$製品;あなたが$製品を使用しているファイルの先頭に... ....これは非常に非常に多くの眉をひそめている - 私はそれを示唆するために自分自身が嫌いです! – Brian