2010-12-08 4 views
0

Est-ce que quelqu'un sait pourquoi cela ne fonctionne pasque quelqu'un sait pourquoi cette itération php ne fonctionne pas

function my_current($array) { 
    return current($array); 
} 

$array = array(1,3,5,7,13); 

while($i = my_current($array)) { 
    $content .= $i.','; 
    next($array); 
} 

mais cela ne

$array = array(1,3,5,7,13); 

while($i = current($array)) { 
    $content .= $i.','; 
    next($array); 
} 

ou comment faire du haut travail? C'est une petite question mais ça serait d'une grande aide! Merci Richard

+0

Pourriez-vous me signaler la fonction current()? Pourriez-vous poster l'erreur? De toute façon, c'est probablement un problème de portée. – Shoe

+0

Quelle est la fonction current()? Est-ce un type erroné ou une fonction réelle? – hollsk

+1

@hollsk 'current' est une fonction principale du tableau PHP. Il renvoie la valeur de l'élément de tableau qui est actuellement pointé par le pointeur interne. http://us.php.net/current – Stephen

Répondre

2

Par défaut, une copie du tableau est en cours.

Essayez ceci:

function my_current(&$array) { 
    return current($array); 
} 
2

Je suppose que c'est parce que lorsque vous appelez une fonction avec un paramètre de tableau, le tableau est copié. Essayez d'utiliser des références.

function my_current(&$array) { 
    return current($array); 
} 

Notez le &.

3

Le tableau est copié, ce qui signifie que le pointeur actuel est perdu. Passez-le comme référence.

function my_current(&$array) { 

Ou mieux encore, utilisez implode().

+0

J'ai déjà vu ça avant - mais je savais qu'il y aurait une réponse! –

Questions connexes