variables globales modification par fonction comportant un exit() solution

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 : variables globales modification par fonction comportant un exit() solution

Re: variables globales modification par fonction comportant un exit() solution

par @rthur » 09 août 2016, 12:18

Pouvez-vous me proposer un exemple de code adapté à mon script en y incluant les exceptions (try... catch ) ?
Malheureusement non car je ne comprends pas à quoi sert ton code.
En revanche dans les 2 liens que je t'ai donné, il y a des exemples donc à toi de regarder si ça pourrait te servir car si c'est bien ça ce que tu cherches à faire, la meilleure solution est d'utiliser les exceptions.

Re: variables globales modification par fonction comportant un exit() solution

par patou1007 » 09 août 2016, 11:40

Bonjour,

Pouvez-vous me proposer un exemple de code adapté à mon script en y incluant les exceptions (try... catch ) ?

Re: variables globales modification par fonction comportant un exit() solution

par @rthur » 08 août 2016, 14:05

Tu ne serais pas en train de réinventer les exceptions avec leur try...catch ?
http://www.finalclap.com/faq/325-php-ex ... -try-catch
https://secure.php.net/manual/fr/langua ... ptions.php

Re: variables globales modification par fonction comportant un exit() solution

par patou1007 » 08 août 2016, 11:49

Bonjour,

Pouvez-vous m'aider à résoudre mon problème ?

Merci :D

Re: variables globales modification par fonction comportant un exit() solution

par patou1007 » 29 juil. 2016, 11:36

Bonjour,

J'ai fait ce petit script pour tester.

En fait j'ai un gros script principal dont voici un extrait:

Code : Tout sélectionner

function copy_errors($mess){ global $var_errors; $var_errors=$mess; //$var_errors=$noncritical_errors; } function my_exit($code) { global $stop_on_warning; global $warning; //global $noncritical_errors; //global $var_errors; // affichage des avertissements eventuels if(count($warning) > 0) { $noncritical_errors = "\n"; $noncritical_errors .= "----------------------------------------------------------------------\n"; $noncritical_errors .= "Des avertissements et/ou des erreurs non critiques ont ete rencontres:\n"; for($i = 0; $i < count($warning); $i++) { $noncritical_errors .= " " . $warning[$i] . "\n"; } $noncritical_errors .= "----------------------------------------------------------------------\n"; if($stop_on_warning) { $noncritical_errors .= "\nUne option a ete positionnee pour un arret des traitements meme sur avertissements ou erreurs non critiques\n\n"; } //print $noncritical_errors; } displayerrors($noncritical_errors); copy_errors($noncritical_errors); //$var_errors=$noncritical_errors; //$var_errors=displayerrors($noncritical_errors); //copy_errors(); //return($noncritical_errors); // fin des operations closelog(); exit($code); }
ce que je cherche à faire c'est isoler les erreurs et les copier dans une variable.
La fonction my_exit(code) est utilisée à plusieurs endroit du programme ( exemple on fait my_exit(1) souvent ).

Je ne veux pas me débarrasser du exit(code) à la fin de la fonction de la fonction my_exit(code) pour ne pas impacter le fonctionnement de mon script.

ma variable globale $non_criticals_errors n'était pas modifiée après l'appel de la fonction et qu'elle contenait toujours la valeur initiale d'affectation plus haut dans le code dans sa déclaration en dehors de la fonction my_exit($code).

Pouvez-vous me donner une astuce pour permettre cette modification ? :D

Re: variables globales modification par fonction comportant un exit() solution

par @rthur » 28 juil. 2016, 16:25

Bonjour,

exit permet d'arrêter le traitement PHP là où il en est.

Donc dans ton cas, la variable globale est bien modifiée mais quand tu fait exit ça stoppe tout à la manière d'un arrêt d'urgence et donc ça ne t'affiche pas le résultat.

A mon avis c'est ta façon de faire qui est à revoir.
Que cherches tu à faire exactement ?

variables globales modification par fonction comportant un exit() solution

par patou1007 » 28 juil. 2016, 16:02

Bonjour

J'ai le script suivant:

Code : Tout sélectionner

<?php $var_test="il est fort"; $stop_on_warning=true; $warning=2; function change_force(){ global $var_test; $var_test="il est encore plus fort"; exit; } change_force(); echo $var_test; ?>
Sans le exit dans la fonction cela fonctionne evidemment.

Je cherche une solution pour modifier les variables globales même en présence de exit, pouvez-vous me proposer des solutions ?

Merci :D