In Ordnung, ich habe den Code ein wenig verdummt ... Ich bin mir nicht sicher, ob das, was ich erreichen will, möglich ist oder nicht.Wie kann ich bei Verwendung von include innerhalb einer Funktion auf eine Variable zugreifen, die vor dem Include deklariert wurde?
Ich habe eine Klasse namens Beispiel mit einem Template-Funktion aufgerufen, die mit 1 Parameter
Class Example{
public function Template($root){
include ROOT."/templates/{$root}.php";
}
}
Ich habe eine Reihe von Produkten hat, instanziiert ich die Klasse und führen Sie die Template-Funktion
$products = array("garbage");
$test = new Example;
$test->Template("product");
Hier ist ein Beispiel Kopie der /templates/product.php
print 'Test';
print_r($products);
Ich komme zurück Eine Seite, die "Test" anzeigt, aber ich kann nicht auf das Array $products
zugreifen, das vor der Template-Funktion definiert wurde.
Wenn ich die direkte include ROOT."/templates/product.php";
Route gehe, funktioniert alles.
Kann ich Include nicht innerhalb einer Funktion verwenden?
Es ist nicht.Es ist ein Array (oder sollte angenommen werden) FIXED – FuckYou
Nicht das Problem, und Sie haben die Frage nicht verstanden, weil, wenn ich festgestellt habe, dass ich das Ergebnis durch direkte Einbeziehung erhalten kann Offensichtlich ist das Array ein Array und wurde hier nur als Halter platziert, als wäre es bereits definiert worden. Wie auch immer, danke. Ich habe diese – FuckYou
aktualisiert Die 'richtige' Antwort, würde sein, das Array in die Klasse über einen Konstruktor zu übergeben ... aber globale $ -Produkte; an der Spitze der Datei, wo Sie $ Produkte verwenden, wird funktionieren .... JEDOCH ist das sehr sehr verpönt - und ich hasse mich selbst für das Vorschlagen !!! – Brian