Volgens de opmerkingen, $products
werd geïnitialiseerd door een opgenomen bestand dat in een functie was opgenomen. Dat definieert de reikwijdte van de functie, in plaats van globaal. U moet dus global $products;
. gebruiken voordat je de include belt.
function func_that_defined_products() {
global $products;
include('file_that_defines_products.php');
}
// Now when called globally later, it will be at the correct scope.
function foo($bar)
{
global $products;
$query = 'SELECT p_name FROM 0_products WHERE p_category IN (' . $bar . ')';
// etc...
}
Ik vind het in ieder geval iets leesbaarder om $GLOBALS['products']
te gebruiken in plaats van de global
trefwoord. En zoals altijd verdient het de voorkeur om, waar mogelijk, de variabele door te geven aan een functie in plaats van deze globaal te benaderen.
// If you can, do it this way
function foo($bar, $products) {
// $products was a param, and so global is unnecessary
}
In uw geval, als het CMS het definieert, verliest u mogelijk de flexibiliteit om het op die manier te doen...