PDA

View Full Version : [php] Ciclo if con variabile contenuta in un altro file, come fare



Glorifindel
13th March 2011, 17:32
Ho provato con "include" nell'intestazione del file php ma il risultato è stata una pagina bianca tranne l'header...

Devo inserire un ciclo if che valuti se un parametro è numerico o meno (e questo lo so fare con is_numeric() ); il problema è che questo parametro viene da un altro file php sotto forma di function.

In sostanza cosa voglio: se il parametro è un numero, allora prima del numero mi mostra il simbolo della valuta (€), altrimenti non lo mostra se è testuale (es. "Prezzo da definire").


Il file "function.php" contiene la funzione di inserimento prezzo (qui funziona tutto), in particolare:

function get_price($var){

$price = $var;
$priceCount = strlen($price);

if (is_numeric ($price)){
$price = number_format($var, 0, ',', '.');
echo $price;

}else{
echo $price;
}

}

Il file "single.php" contiene invece il contenuto mostrato nella pagina in base alle varie condizioni (sotto riporto come sto cercando di fare io e non funge, toglie il simbolo di valuta a tutto, anche se numerico):

<?php

if (is_numeric ($price)){

echo $ts_cur;

}else{

}

?>
<?php get_price(get_post_meta($post->ID, "price_value", true)); ?>

Non so se sono riuscito a spiegarmi, ma in pratica vorrei che su questo tema di WP http://www.stevebluck.co.uk/turs/wp/ sparisse il simbolo della valuta davanti ai prezzi solo se non sono numeri.

Bers
13th March 2011, 19:22
metti return $price dopo l'echo $price e prendilo come variabile in uscita dalla funzione, in pratica:



function get_price($var){

$price = $var;
$priceCount = strlen($price);

if (is_numeric ($price)){
$price = number_format($var, 0, ',', '.');
echo $price;
return $price;

}else{
echo $price;
return $price;
}

}




<?php $price = get_price(get_post_meta($post->ID, "price_value", true)); ?>
<?php

if (is_numeric ($price)){

echo $ts_cur;

}else{

}

?>



Comunque non è consigliato far stampare delle variabili a delle funzioni... è più corretto farle restituire come risultato e far gestire l'output alla pagina.
Questo perchè ti permette di gestire meglio il caso in cui tu non lo voglia stampare.

Glorifindel
13th March 2011, 20:52
funziona Bers :bow:

tytytytyty

la variabile cmq viene stampata sempre in quanto di default lascio scritto "Info in ufficio" o "Trattative Riservate" quando il prezzo non viene specificato. L'unica chicca che mi mancava era riuscire a discriminare il prezzo in formato numerico da quello testuale in modo da non avere "€Info in ufficio" o roba simile quando il prezzo non si sa.

Bers
14th March 2011, 03:15
funziona Bers :bow:

tytytytyty

la variabile cmq viene stampata sempre in quanto di default lascio scritto "Info in ufficio" o "Trattative Riservate" quando il prezzo non viene specificato. L'unica chicca che mi mancava era riuscire a discriminare il prezzo in formato numerico da quello testuale in modo da non avere "€Info in ufficio" o roba simile quando il prezzo non si sa.

di niente figurati ;)