fonction avec passage par reference de variable - PHP - Programmation
Marsh Posté le 08-03-2005 à 16:03:25
DSL:
Appel de la fonction:
$this->set_style(&$style,&$fin_style,$option);
La fonction:
function set_style(&$style,&$fin_style,$val){
if (preg_match("/(.*?)italic(.*?)/mi", $val)){
$style.="\\i";
$fin_style.="\\i0";
}
if (preg_match("/(.*?)bold(.*?)/mi",$val)){
$style.="\\b";
$fin_style.="\\b0";
}
if (preg_match("/(.*?)underline(.*?)/mi", $val)){
$style.="\\ul";
$fin_style.="\\ul0";
}
if (preg_match("/(.*?)line-through(.*?)/mi", $val)){
$style.="\\strike";
$fin_style.="\\strike0";
}
}
Marsh Posté le 08-03-2005 à 16:05:09
$this->set_style($style,$fin_style,$option);
pour ton appel
Marsh Posté le 08-03-2005 à 16:12:41
merci: Ha les copier-coller c bien mais ca crée des erreurs...
Marsh Posté le 08-03-2005 à 23:11:51
En fait il faut faire "l'inverse".
Avant on definissait le passage par reference dans la declaration de la fonction. Mais apparment c'est deprecie.
Si neanmoins tu veux toujours passer tes var par ref, c'est possible, mais faut le faire au moment de l'appel de la fonction.
Code :
|
Marsh Posté le 09-03-2005 à 19:03:46
Il n'y a pas de methode "old school" et l'autre "new shcool". C'est simplement qu'une des deux methodes est devenue depreciee ou "deprecated" en anglais.
Personellement je preferes egalement l'ancienne methode, non parcequ'elle est "old school", mais parceque le controle est plus facile a faire.
En effet, on a vite oublie qu'il fallait passer un argument par reference a une fonction, alors qu'avec l'ancienne methode, c'etait transparent pour "l'utilisateur" (l'utilisateur des fonctions donc ).
Marsh Posté le 11-03-2005 à 13:51:47
oui cerel, je disais pas que je la préfèrai juste pck'elle est old school mais au moins avec les & dans la déclaration, tu vois tout de suite de quoi tu parles et c dommage que ce soit déprécié . Je suis d'accord sur le fait qu'on peut oublier , et certaines personnes ne savent meme pas ce que c'est alors ...
Marsh Posté le 08-03-2005 à 15:53:47
Salut,
J'obtiens le warning suivant:
"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 c:\program files\easyphp1-7\www\RTF\class_rtf.php on line 404"
Je comprend que ca concerne le passage par reference de variable a une fonction mais je ne comprend pas comment le supprimer.
Si qlq a une idée?
merci d'avance