2017-05-12 6 views
-1

Ich habe eine erste PHP-Datei mit ein paar Variablen drin, die außerhalb einer Funktion definiert sind. Ich versuche, eine Möglichkeit zu finden, diese Variablen in einer zweiten PHP-Datei in einer Funktion zu verwenden. Da ich gelesen habe, dass es nicht empfohlen wird, das globale Schlüsselwort zu verwenden, habe ich versucht, eine der Variablen als Parameter als Test zu übergeben, basierend auf einer der Antworten hier, aber ohne Erfolg. Hier ist eine vereinfachte Version von meinem Code im Moment:Zugriff auf globale Variable in Funktion

vars.php mit:

$test = 'test'; 

functions.php mit:

include 'Vars.php'; 

function add_content($test){ 
    echo 'This is a '. $test; 
} 
add_action('woocommerce_single_product_summary', 'add_content', 15); 

Ich bin nicht sicher, ob diese Angelegenheiten oder nicht, aber als Sie können sehen, dass dies für eine Wordpress-Website ist. Wenn jemand weiß, wie man das macht, würde das sehr geschätzt werden. Es wäre überflüssig, alle Variablen in der Funktion selbst neu definieren zu müssen.

+0

Was ist dein Problem? –

+0

'global $ test; Funktion add_content() ... 'Warum nicht Globals verwenden? –

+0

@Adrien Wenn Sie auf externe Variable der Funktion zugreifen möchten, warum also diese Variable übergeben? 'Funktion add_content ($ test) {' $ test wird überschrieben von 15 –

Antwort

1

@Adrien hoffe, dass Sie auf die Variablen innerhalb der Funktion zugreifen wollen, die außerhalb der Funktion sind, so können Sie verwenden $GLOBALS es ist eine super globale Variable, die Referenz aller Variablen in der aktuellen Skriptdatei ($GLOBALS ein Array, das speichern Variablennamen als Schlüssel und Variablenwert als Wert des Schlüssels)

so versuchen sie es wie unten:

vars.php

$test = 'test'; 

function.php

<?php 
    include 'test.php'; 
    function add_content(){ 
     echo 'This is a '. $GLOBALS["test"]; //$test variable store in this with the variable name test as key and value of the variable as value of key 
    } 
    add_content('woocommerce_single_product_summary', 'add_content'); 
+0

Vielen Dank für Ihre Antwort. Wie ich in meiner Frage gesagt habe, lese ich, dass es nicht empfohlen wird, $ globals zu benutzen, deshalb zögerte ich, aber ich sehe keinen anderen Weg. Ich habe dein Skript getestet und es funktioniert. Danke noch einmal :) – Adrien

Verwandte Themen