A voir également:
- PHP - fwrite dans une fonction
- Fonction si et - Guide
- Easy php - Télécharger - Divers Web & Internet
- Fonction moyenne excel - Guide
- Fonction remplacer dans word - Guide
- Excel remplir automatiquement une cellule en fonction d'une autre ✓ - Forum Excel
3 réponses
Merci !
Je viens de comprendre. Le nom de fonction "Log" posait problème à PHP.
Tout ces neurones grillés pour ça ...
Merci encore !!!
Sujet Résolu
Je viens de comprendre. Le nom de fonction "Log" posait problème à PHP.
Tout ces neurones grillés pour ça ...
Merci encore !!!
Sujet Résolu
J'ai réussi à créer des requêtes SQL dans des fonction en me servant de séquences initialisées en dehors de la même fonction. Cela ne m'a posé aucun problème. Donc je ne pense pas que cela vienne de là.
Les éléments suivants au sein de la fonction ont également échoué :
Et
J'ai essayé également d'initialiser l'ensemble des variables requises dans la fonction mais toujours KO :
Le truc c'est que :
- si je commente la fonction il écrit dans le fichier le "test1"
- si je dé-commente la fonction il écrit rien du tout
Je sèche ...
Les éléments suivants au sein de la fonction ont également échoué :
fwrite($GLOBALS['fichier_log'], $texte_a_loguer);
Et
global $fichier_log; $fichier = $fichier_log; fwrite($fichier, $texte_a_loguer);
J'ai essayé également d'initialiser l'ensemble des variables requises dans la fonction mais toujours KO :
<?php /* Logs */ $filename = "L:\Projet MIN\XML PHP\log.txt"; $mode = 'a'; $texte_a_loguer = "\nTest1"; $fichier_log = fopen($filename, $mode); fwrite($fichier_log, $texte_a_loguer); fclose($fichier_log); function Log() { $filename = "L:\Projet MIN\XML PHP\log.txt"; $mode = 'a'; $texte_a_loguer = "\nTest2"; $fichier_log = fopen($filename, $mode); fwrite($fichier_log, $texte_a_loguer); fclose($fichier_log); } Log(); ?>
Le truc c'est que :
- si je commente la fonction il écrit dans le fichier le "test1"
- si je dé-commente la fonction il écrit rien du tout
Je sèche ...
global $fichier_log déclare une variable qui pourra être utilisée en-dehors de la fonction, problème c'est que tu affectes une valeur à $fichier_log EN-DEHORS de la fonction, donc fwrite($fichier_log, utf8_encode($texte_a_loguer)); ne fonctionne pas car $fichier_log est vide à l'intérieur de la fonction Log(), enfin ce n'est que mon avis...
Flachy Joe
Messages postés
2102
Date d'inscription
jeudi 16 septembre 2004
Statut
Membre
Dernière intervention
21 novembre 2023
260
6 mai 2012 à 20:58
6 mai 2012 à 20:58
c'est justement le contraire : le mot clef global permet de récupérer la valeur d'une variable globale à l'intérieur de la fonction...
Extrait de l'article consultable sur http://www.phpdebutant.org/article41.php
8 . Variables globales et statiques
Nous avons vu comment passer des variables à une fonction, il existe 2 types particuliers de variables utilisées souvent dans les fonctions. Ce sont les variables globales et statiques.
Une variable globale déclarée à l'intérieur d'une fonction à l'aide de l'instruction global permet à une variable d'être accessible en dehors de la fonction, vous pouvez accéder à cette fonction par son nom ou à l'aide du tableau $GLOBALS.
1 - Variables globales :
Ici $cpt sera accessible en dehors de glob_fonc après son appel et il aura la valeur 1, vous pouvez aussi y accéder avec sa valeur dans le tableau de globales c'est à dire $GLOBALS["cpt"].
8 . Variables globales et statiques
Nous avons vu comment passer des variables à une fonction, il existe 2 types particuliers de variables utilisées souvent dans les fonctions. Ce sont les variables globales et statiques.
Une variable globale déclarée à l'intérieur d'une fonction à l'aide de l'instruction global permet à une variable d'être accessible en dehors de la fonction, vous pouvez accéder à cette fonction par son nom ou à l'aide du tableau $GLOBALS.
1 - Variables globales :
<?php function glob_fonc() { global $cpt; $cpt = 1; } ?>
Ici $cpt sera accessible en dehors de glob_fonc après son appel et il aura la valeur 1, vous pouvez aussi y accéder avec sa valeur dans le tableau de globales c'est à dire $GLOBALS["cpt"].
Flachy Joe
Messages postés
2102
Date d'inscription
jeudi 16 septembre 2004
Statut
Membre
Dernière intervention
21 novembre 2023
260
7 mai 2012 à 14:47
7 mai 2012 à 14:47
Et le contraire est donné ici : https://www.php.net/manual/fr/language.variables.scope.php
Extrait : Exemple avec global
Le script ci-dessus va afficher la valeur 3. En déclarant globales les variables $a et $b locales de la fonction somme(), toutes les références à ces variables concerneront les variables globales.
Malgré l'interprétation erronée, ton exemple fonctionne car la variable globale $cpt n'étant pas définie, elle est créée au moment de l'appel de la fonction.
En revanche mon exemple infirme ton interprétation du fait que les variables $a et $b sont déclarée avant l'interprétation du code de la fonction et donc du global.
Bonne prog !
Extrait : Exemple avec global
<?php $a = 1; $b = 2; function somme() { global $a, $b; $b = $a + $b; } somme(); echo $b; ?>
Le script ci-dessus va afficher la valeur 3. En déclarant globales les variables $a et $b locales de la fonction somme(), toutes les références à ces variables concerneront les variables globales.
Malgré l'interprétation erronée, ton exemple fonctionne car la variable globale $cpt n'étant pas définie, elle est créée au moment de l'appel de la fonction.
En revanche mon exemple infirme ton interprétation du fait que les variables $a et $b sont déclarée avant l'interprétation du code de la fonction et donc du global.
Bonne prog !
Ok je ne connaissais pas cette particularité de PHP, comme j'apprends (et je continue d'apprendre, la preuve...) en autodidacte à partir de tutos PHP sur le net, ta remarque m'apprends une chose en plus. Merci d'avoir prit le temps de l'explication et le lien de la source documentaire!
Bonne continuation
Bonne continuation
6 mai 2012 à 19:09
6 mai 2012 à 20:54