Warning: Call-time pass-by-reference... !?

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 : Warning: Call-time pass-by-reference... !?

par dark_vidor » 14 janv. 2006, 17:39

j'ai chopper une explication de comment faire : http://php.developpez.com/faq/?page=fic ... ographique

j'vous remercie :wink:

par Cyrano » 14 janv. 2006, 17:37

Dans un tableau (array())
Et le tri avec asort() ;)

par dark_vidor » 14 janv. 2006, 16:21

heu :?

par jeff » 14 janv. 2006, 16:19

tu met tes fichier dans un tableau et tu fait un tri

par dark_vidor » 14 janv. 2006, 16:10

cool 8)

Merci

heu une autre question ... avec la fonction readdir comment on fait pour les fichiers soit retournée dans l'ordre alphabétique ? :roll:

par jeff » 14 janv. 2006, 16:08

voici un debut de reponse
Notez qu'il n'y a pas de signe de référence dans l'appel de la fonction, uniquement sur sa définition. La définition de la fonction est suffisante pour passer correctement des arguments par référence. Dans les versions récentes de PHP, vous devriez recevoir une alerte disant que "Call-time pass-by-reference" est obsolète lorsque vous utilisez un & dans foo(&$a);.
tente
function list_folder($path, &$array)
{
    global $count_glob;

    if($path != '.')
    {
        $array[$count_glob] = $path;
        $count_glob ++;
    }

    $rep = $path;

    $ptr = opendir($rep);

    while(false !== ($file = readdir($ptr)))
        if($file != "." && $file != ".." && $file != "data" && $file != "index.php" && $file != "conf.txt" && $file != "thumb")
            if(is_dir($rep.'/'.$file))
                list_folder($rep.'/'.$file, $array);
    closedir($ptr);
}

par dark_vidor » 14 janv. 2006, 13:53

par Truc » 14 janv. 2006, 12:54

L'erreur vient du faite que tu passe l'argument (tableau) par référence => &
list_folder($rep.'/'.$file, &$array);
et que ce n'est pas précisé dans la fonction, change le parametre de la fonction en y ajoutant un &:
function list_folder($path, &$array) 
{
...

Warning: Call-time pass-by-reference... !?

par dark_vidor » 14 janv. 2006, 12:35

Voici ma fonction :
function list_folder($path, $array)
{
	global $count_glob;

	if($path != '.')
	{
		$array[$count_glob] = $path;
		$count_glob ++;
	}

	$rep = $path;

	$ptr = opendir($rep);

	while(false !== ($file = readdir($ptr)))
		if($file != "." && $file != ".." && $file != "data" && $file != "index.php" && $file != "conf.txt" && $file != "thumb")
			if(is_dir($rep.'/'.$file))
				list_folder($rep.'/'.$file, &$array);
	closedir($ptr);
}
L'erreur qu'elle me retourne :
Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of [runtime function name](). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in /home/derniere/domains/derniere-bataille.net/public_html/test/galerie/index.php on line 69
La ligne 69 :
list_folder($rep.'/'.$file, &$array);
C'est la premiere fois que j'ai ce type d'erreur ...
Je comprend pas d'ou elle viens :roll:

Pouvez vous m'aider ? Merci :wink: