Per komentar, $products
diinisialisasi oleh file yang disertakan yang disertakan di dalam suatu fungsi. Itu mendefinisikan ruang lingkupnya ke fungsi, bukan secara global. Jadi, Anda harus menggunakan global $products;
sebelum memanggil penyertaan.
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...
}
Bagaimanapun, saya merasa sedikit lebih mudah dibaca untuk menggunakan $GLOBALS['products']
bukannya global
kata kunci. Dan seperti biasa, jika memungkinkan, adalah praktik yang lebih disukai untuk meneruskan variabel ke dalam suatu fungsi daripada mengaksesnya secara global.
// If you can, do it this way
function foo($bar, $products) {
// $products was a param, and so global is unnecessary
}
Namun dalam kasus Anda, jika CMS mendefinisikannya, Anda mungkin kehilangan fleksibilitas untuk melakukannya dengan cara itu...