Actualité informatique
Test comparatif matériel informatique
Jeux vidéo
Astuces informatique
Vidéo
Télécharger
Services en ligne
Forum informatique
01Business

|-  INTERNET


|||-  

PHP pb argument passé par référence dans fonction

 

14 utilisateurs inconnus
Ajouter une réponse
 

 
Page photos
 
     
Vider la liste des messages à citer
 
 Page :
1
Auteur
 Sujet :

PHP pb argument passé par référence dans fonction

Prévenir les modérateurs en cas d'abus 
domp
domp
Bébé forumeur (De 10 à 49 messages postés)
  1. Posté le 29/11/2004 à 14:09:54  
  1. answer
  1. Prévenir les modérateurs en cas d'abus
 
 
 Mes outils :

Easy PHP 1.7 donc :

Apache 1.3.27

PHP 4.3.3

MySQL 4.0.15

PHP myAdmin 2.5.3
 
 
 Lors de la tentative d'execution de la 1ère page .php3, le message d'erreur suivant apparait :
 
 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  chemin_d'accès_normal\fichier.​php3 on line n°de_ligne
 
 Exemple

contenu de cette ligne :

$Test=choix_menu($db,$choix,&$​table)

définition de la fonction dans un autre fichier

function choix_menu($db,$choix,&$table)
 
 Visiblement il n'aime pas le &$table.
 
 La solution qui est donnée : allow_call_time_reference = True ne donne pas de résultat.
 
 Quelle est la meilleure façon de résoudre ce pb ?
 Merci d'avance de vos aides.

alpha28
Débutant confirmé (de 1 000 à 4 999 messages postés)
  1. Posté le 29/11/2004 à 14:19:47  
  1. answer
  1. Prévenir les modérateurs en cas d'abus
 
Salut
 mais tu devrais plutôt utiliser :
 
 $Test=choix_menu($db,$choix,$t​able)
 au lieu de  
 $Test=choix_menu($db,$choix,&$​table)
 
 non??
 a+

(Publicité)
domp
Bébé forumeur (De 10 à 49 messages postés)
  1. Posté le 29/11/2004 à 14:51:19  
  1. answer
  1. Prévenir les modérateurs en cas d'abus
 

Alpha28 a écrit :

Salut
 mais tu devrais plutôt utiliser :
 
 $Test=choix_menu($db,$choix,$t​able)
 au lieu de  
 $Test=choix_menu($db,$choix,&$​table)
 
 non??
 a+
 



 
 Si j'ai bien compris :
 - quand on passe un paramètre par référence (&$table) on utilise une variable définie ailleurs (qui sera modifiée ailleurs),
 - quand on passe un paramètre par valeur ($table) on utilise une copie qui ne sera valable qu'au sein de la fonction (elle ne sera pas modifiée ailleurs).
 Je n'ai pas écrit le prog initial et je ne connais pas vraiment le php.
 
 J'ai essayé de résoudre le pb en faisant comme suit, mais je ne suis pas sur que ce soit correct :
 
 $Test = choix_menu($db,$choix);
 
 function choix_menu($db,$choix)
 {
 global $table;
 
 Faut-il que je déclare aussi global $table; dans le fichier qui contient $Test = choix_menu($db,$choix);  ?
 
 Merci d'avance de m'éclairer.
 
 

alpha28
Débutant confirmé (de 1 000 à 4 999 messages postés)
  1. Posté le 29/11/2004 à 14:59:56  
  1. answer
  1. Prévenir les modérateurs en cas d'abus
 
euh... en fait tu utilises le passage d'argument par référence...  
 essaie ce code :  
 <?php
 
 function addition($a, $b, &$resultat) {

$resultat=$a+$b;
 }
 
 $a=2;
 $b=12;
 $resultat=0;
 addition($a,$b);
 echo $resultat;
 ?>  
 
 adapte pour ton cas
 a+

domp
Bébé forumeur (De 10 à 49 messages postés)
  1. Posté le 29/11/2004 à 15:47:30  
  1. answer
  1. Prévenir les modérateurs en cas d'abus
 

Alpha28 a écrit :

euh... en fait tu utilises le passage d'argument par référence...  
 essaie ce code :  
 <?php
 
 function addition($a, $b, &$resultat) {

$resultat=$a+$b;
 }
 
 $a=2;
 $b=12;
 $resultat=0;
 addition($a,$b);
 echo $resultat;
 
 ?>  
 
 adapte pour ton cas
 a+
 



 
 PHP accepte qu'une fonction soit déclarée avec 3 paramètres mais appelée avec 2 seulement ? Cela m'étonne un peu.
 Je vais essayer et je te tiendrais au courant dans quelques jours.
 En tout cas merci de la peine que tu prends pour me dépanner.

(Publicité)
alpha28
Débutant confirmé (de 1 000 à 4 999 messages postés)
  1. Posté le 29/11/2004 à 16:14:38  
  1. answer
  1. Prévenir les modérateurs en cas d'abus
 
exact, exact, marche pas sans le troisième argument
 
 <?php
 
 function addition($a, $b, &$resultat) {

$resultat=$a+$b;
 }
 
 $a=2;
 $b=12;
 $resultat=0;
 addition($a,$b,$resultat);
 echo $resultat;
 
 ?>
 
 çà cela fonctionne chez moi
 a+

alpha28
Débutant confirmé (de 1 000 à 4 999 messages postés)
  1. Posté le 29/11/2004 à 16:15:41  
  1. answer
  1. Prévenir les modérateurs en cas d'abus
 
et <?php
 
 function addition($a, $b, &$resultat) {

$resultat=$a+$b;
 }
 
 $a=2;
 $b=12;
 $resultat=0;
 addition($a,$b,&$resultat);
 echo $resultat;
 
 ?>
 
 aussi !!!
 

alpha28
Débutant confirmé (de 1 000 à 4 999 messages postés)
  1. Posté le 29/11/2004 à 16:18:25  
  1. answer
  1. Prévenir les modérateurs en cas d'abus
 
effectivement j'ai allow_call_time_pass_reference sur on dans mon php.ini
 mais as tu redémarré ton serveur ?
 a+

(Publicité)
domp
Bébé forumeur (De 10 à 49 messages postés)
  1. Posté le 06/12/2004 à 11:35:13  
  1. answer
  1. Prévenir les modérateurs en cas d'abus
 

Alpha28 a écrit :

effectivement j'ai allow_call_time_pass_reference sur on dans mon php.ini
 mais as tu redémarré ton serveur ?
 a+
 



 
 
 1 - Réponse à ton message précédent :
 
 Avec ton exemple, directement dans un fichier php vierge
 
 <?php
 function addition($a, $b, &$resultat) {

$resultat=$a+$b;
 }
 
 $a=2;
 $b=12;
 $resultat=0;
 addition($a,$b);
 echo $resultat;
 ?>  
 
 Résultat :
 Warning: Missing argument 3 for addition() in c:\serveurlocal\test\test1\tmp​1kzpk7zh7d.php on line 2
 
 
 Mais j'ai résolu les pb de référence en déclarant les variables global dans la fonction.
 
 Maintenant je rencontre un problème d'offset sur les expressions du style :
 $testb = $toto;  
 Pourquoi ?
 Y arriverai-je ?
 En tous cas merci.

 Page :
1

Aller à :
 

Sujets relatifs
comment etre referencé sur google [php][resolu] inscriptions automatiques pour mon site
[resolu]Code php ne marche pas exercice avec la css et php : votre avis
Affichage aléatoire php si possible reinitialiser un mot de passe d'un pseudo AOL
piège sur IRC par la fonction //[$decode.. serveur php My sql
un ptit argument  
Plus de sujets relatifs à : PHP pb argument passé par référence dans fonction

Les 5 sujets de discussion précédents Nombre de réponses Dernier message
pb d'affichage video sur site web 5
Formulaire 0
comment faire pour inssérerun code sur son site 4
Je voudrais apprendre le PHP 22
Problème avec Ulimit 6