Mysql
 sql >> Database >  >> RDS >> Mysql

Errori durante l'utilizzo di array_push:il primo argomento dovrebbe essere un array

Per i commenti, $products è stato inizializzato da un file incluso che è stato incluso all'interno di una funzione. Ciò definisce il suo ambito per la funzione, piuttosto che a livello globale. Quindi dovrai utilizzare global $products; prima di chiamare l'inclusione.

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...
}

In ogni caso, trovo un po' più leggibile usare $GLOBALS['products'] invece del global parola chiave. E come sempre, ove possibile, è preferibile passare la variabile in una funzione piuttosto che accedervi globalmente.

// If you can, do it this way
function foo($bar, $products) {
  // $products was a param, and so global is unnecessary
}

Tuttavia, nel tuo caso, se il CMS lo definisce potresti perdere la flessibilità per farlo in quel modo...