Page 1 sur 1

probleme function

Posté : 26 juil. 2012, 17:19
par amonite
Bonjour,

j'ai un bout de code qui affiche une image inséré dans ma BDD, mais comme j'insere un catalogue en CSV, et que mes images sont enregistrées sans leur extensions, j'ai voulu le modifié en créant une fonction php.

Quand je crée une variable pour y ajouter l'extension et faire afficher l'image cela fonctionne "$pict".

mais quand je veux faire executer ma fonction 'image()", il ne la reconnais pas

Cette fonction sert à afficher une image par default si je n'ai pas encore enregistrer l'image dans le repertoires images.

Je vous copie le code en dessous.

Par avance, merci de votre aide.

<?php
$pict = $product_info['products_image'] . '.jpg';
$no = 'nopict.jpg';
?>

<?php
function image()
{
if(file_exists($no)) {
	echo($no);
} else {
	echo ($pict);
}
}
?>

<?php
$img = image();
?>
     
     <tr>
     	<td class="pageHeading" align="center" width="50%" >
<?php
    if (tep_not_null($product_info['products_image'])) {
?>
      
<script language="javascript"><!--
document.write('<?php echo '<a href="javascript:popupWindow(\\\'' . tep_href_link(FILENAME_POPUP_IMAGE, 'pID=' . $product_info['products_id']) . '\\\')">' . tep_image(DIR_WS_IMAGES . image(), addslashes($product_info['products_name']), SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT, 'hspace="5" vspace="5"') . '</a><center>'.  $img_promotion_product ; ?>');
//--></script>
<noscript>



Re: probleme function

Posté : 26 juil. 2012, 17:23
par xTG
<?php
$img = image();
?>
     
     <tr>
Il y a comme un souci avec ton organisation du DOM.
On ne met rien entre deux tr.
Aussi ta fonction ne renvoie rien (aucun return), donc $img ne sert à rien.
Enfin tu as un problème de scope. A savoir que la variable locale $no n'existe pas dans ta fonction.
Il faut la déclarer global ou bien la passer en paramètre. ;)

Re: probleme function

Posté : 27 juil. 2012, 07:51
par amonite
Bonjour,

Merci xTG pour tes explications. Mais j'avoue que je ne suis pas un expert et que la je rame.

Si quelqu'un pouvait m'expliquer un peu plus en détail.

Merci par avance.

Bonne journée

Re: probleme function

Posté : 27 juil. 2012, 08:01
par xTG
Pour la fonction tu as deux solutions comme je le disais, voici des exemples pour mieux comprendre :
$test = 'test';

function test0(){
  // on fait plein de truc mais aucun return
}
echo test0(); // aucun affichage

function test1(){
  return 'Ceci est un '.$test;
}
echo test1(); // affichera "Ceci est un" ainsi qu'une erreur de type warning car $test n'existe pas

function test2($parametre){
  return 'Ceci est un '.$parametre;
}
echo test2($test); // affichera 'Ceci est un test"

function test3(){
  global $test;
  return 'Ceci est un '.$test;
}
echo test3(); // affichera 'Ceci est un test"