erreur dans une fonction

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : erreur dans une fonction

Re: erreur dans une fonction

par sirakawa » 16 août 2012, 14:41

As-tu simplement tenté:
bonjour, ci dessous le code suivant:
function makeArbo($array, $currentParent = '', $currLevel = 0, $prevLevel = -1, $result = '')
{
    if ((is_array($array)) && (count($array) > 0))
    {
        foreach ($array as $item)
        {
            if ($currentParent == $item['PARENT'])
            {						
                if ($currLevel > $prevLevel)
                    $result .= '<ul>'; 
                
                if ($currLevel == $prevLevel)
                    $result .= '</li>';
                
                $result .= '<li>'.$item['DESIGNATION'].'</li>';
                
                if ($currLevel > $prevLevel)
                    $prevLevel = $currLevel;
                
                $currLevel++;
                
                makeArbo($array, $item['ORG'], $currLevel, $prevLevel, $result);
                
                $currLevel--;
            }	
        }

        if ($currLevel == $prevLevel)
            $result .=  '</li></ul>';

        return $result;
    }
}
l'appel de la fonction se fait de la manière suivante:
echo makeArbo($nodes);
le problème est que lorsque j'exécute le script l'erreur suivante arrive:
Parse error: parse error, expecting `'&'' or `T_VARIABLE' or `T_CONST' in C:\wamp\www\test_import\oracle.php on line 2 :?
la ligne 2 est
function makeArbo($array, $currentParent = '', $currLevel = 0, $prevLevel = -1, &$result = '')
c'est quoi l'erreur et comment la corriger. je me trouve vraiment bloqué.
Merci pour l'aide que vous allez fournir. :)

Re: erreur dans une fonction

par bache9 » 16 août 2012, 14:17

non mon wamp utilise php 4.3.9

Re: erreur dans une fonction

par moogli » 16 août 2012, 14:04

pis le passage par référence c'est la mal na :mrgreen: :mrgreen:

Plus sérieusement je suis d'accord avec xTG, ton wam utilise surement php 5.3 ?

as tu essayé sans le & histoire de voir ce qui se passe ? (+ la vérif de version de php).

@+

Re: erreur dans une fonction

par xTG » 16 août 2012, 13:09

Et ton wamp il tourne avec quelle version de PHP à tout hasard...
Car vu comment c'est merdique pour le faire démarrer ne serais-ce qu'un PHP 5.0.5 j'imagine pas avec du PHP4...

Re: erreur dans une fonction

par Invité » 16 août 2012, 12:04

je m'excuse mais en attendant le passage au php 5 l'application est travaillée avec php4 et je dois faire avec.
Merci.

Re: erreur dans une fonction

par moogli » 16 août 2012, 10:51

comme l'indique la documentation (que t'indique sirakawa)
A partir de PHP 5.3.0, vous devriez recevoir une alerte disant que "Call-time pass-by-reference" est obsolète, lorsque vous utilisez un & dans foo(&$a);.
donc vire le & dans déclaration de la fonction pour commencer !

@+

Re: erreur dans une fonction

par bache9 » 16 août 2012, 10:04

ça n'a pas marché.
est ce que tu peux effectuer les modifications sur mon code pour que je comprenne? :)
Merci d'avance.

Re: erreur dans une fonction

par sirakawa » 16 août 2012, 09:54

bjr,
lire:
http://www.php.net/manual/fr/language.r ... s.pass.php
Qui plus est, il serait plus simple de procéder ainsi:
function toto ($p,$q)
{

return $result;
}
$result = toto(1,2);

erreur dans une fonction

par bache9 » 16 août 2012, 09:44

bonjour, ci dessous le code suivant:
function makeArbo($array, $currentParent = '', $currLevel = 0, $prevLevel = -1, &$result = '')
{
    if ((is_array($array)) && (count($array) > 0))
    {
        foreach ($array as $item)
        {
            if ($currentParent == $item['PARENT'])
            {						
                if ($currLevel > $prevLevel)
                    $result .= '<ul>'; 
                
                if ($currLevel == $prevLevel)
                    $result .= '</li>';
                
                $result .= '<li>'.$item['DESIGNATION'].'</li>';
                
                if ($currLevel > $prevLevel)
                    $prevLevel = $currLevel;
                
                $currLevel++;
                
                makeArbo($array, $item['ORG'], $currLevel, $prevLevel, $result);
                
                $currLevel--;
            }	
        }

        if ($currLevel == $prevLevel)
            $result .=  '</li></ul>';

        return $result;
    }
}
l'appel de la fonction se fait de la manière suivante:
echo makeArbo($nodes);
le problème est que lorsque j'exécute le script l'erreur suivante arrive:
Parse error: parse error, expecting `'&'' or `T_VARIABLE' or `T_CONST' in C:\wamp\www\test_import\oracle.php on line 2 :?
la ligne 2 est
function makeArbo($array, $currentParent = '', $currLevel = 0, $prevLevel = -1, &$result = '')
c'est quoi l'erreur et comment la corriger. je me trouve vraiment bloqué.
Merci pour l'aide que vous allez fournir. :)