PDA

View Full Version : Funzione php


Traxsung
16-12-2012, 07:57
Ragazzi mi spiegate cosa fa questa funzione ?


function config_item($name, $item) {

static $config_item = array();

if (!isset($config_item[$item])) {

$config = config_load($name);

if (!isset($config[$item]))
return FALSE;

$config_item[$item] = $config[$item];

}

return $config_item[$item];


Grazie

AllerITA
16-12-2012, 08:30
Dovrebbe essere questo:


function config_item($name, $item) {

static $config_item = array(); //inizializza la variabile statica
//config_item ad un array

if (!isset($config_item[$item])) { //se non esiste già l'elemento item

$config = config_load($name); //chiama la funzione config_load col
// parametro name e lo assegna a config
if (!isset($config[$item])) //se l'array config non contiene l'elemento item
return FALSE; // esci e ritorna FALSE

$config_item[$item] = $config[$item]; //altrimenti assegna a config_item[item]
//config[item]
}

return $config_item[$item]; // restituisce l'elemento della variabile statica
// config_item[item]
}


stai attento che una variabile statica non è come una variabile locale.
Alla successiva chiamata della funzione che la dichiara,
il suo valore rimane settato all'ultima operazione effettuata sulla variabile,
fino alla fine del processo della pagina php.
In questo caso config_item rimane impostata con l'ultimo settaggio cioè uguale al valore dell'elemento item
dell'array dato dalla funzione config_load.
Se non ricordo male.:D

Traxsung
17-12-2012, 02:11
Grazie AllerITA ^_^
sai, lo chiedo perchè su uno script che sto studiando ho una query così:


$sql = "SELECT * FROM " . config_item('cart', 'table_products') . "";

$implode = array();

if (isset($_POST['filter']) && !empty($_POST['filter_product_name']))
$implode[] = " LCASE(product_name) LIKE '%" . strtolower($_POST['filter_product_name']) . "%'";

if ($implode)
$sql .= " WHERE " . implode(" AND ", $implode);




non capisco bene questa parte qui:


config_item('cart', 'table_products')


ovvero io non ho nessuna tabella cart e table_productis... quindi da dove li prende i valoriiii ???? :mbe:

AllerITA
17-12-2012, 03:49
bisognerebbe sapere cosa fa config_load, perché e questa funzione che carica la stringa del nome della tabella della select.
Quindi sia la stringa 'cart' che 'table_products' sono solo dei riferimenti della pagina php per trovare il nome della tabella della select.

Traxsung
17-12-2012, 11:17
config_load è questo:


function config_load($name) {

$configuration = array();

if (!file_exists(dirname(__FILE__) . '/config/' . $name . '.php'))
die('The file ' . dirname(__FILE__) . '/config/' . $name . '.php does not exist.');

require(dirname(__FILE__) . '/config/' . $name . '.php');

if (!isset($config) OR !is_array($config))
die('The file ' . dirname(__FILE__) . '/config/' . $name . '.php file does not appear to be formatted correctly.');

if (isset($config) AND is_array($config))
$configuration = array_merge($configuration, $config);

return $configuration;

}

AllerITA
17-12-2012, 11:37
Mi sa che il nome della tabella si trova nella pagina php :

(percorso dove si trova la pagina php dove si trova config_item) '/config/cart.php'

li viene definito un array di nome config e questo array ha come
valore dell'elemento indicato dalla stringa 'table_products' il nome
della tabella che viene usata nella select.