Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

$variable++ qui ne marche pas?

19 réponses
Avatar
jp
Bonjour, en php4 $a++ fonctionnait et avec php7 je suis obligé de faire
$a = $a + 1. Quelqu'un sait pourquoi?

C'est juste une question sans importance. Juste pour comprendre...

10 réponses

1 2
Avatar
Eric Demeester
Bonjour,
jp (10 Dec 2019 02:33:23 GMT - fr.comp.lang.php) :
Bonjour, en php4 $a++ fonctionnait et avec php7 je suis obligé de faire
$a = $a + 1. Quelqu'un sait pourquoi?

À en croire le manuel :
https://www.php.net/manual/fr/language.operators.increment.php
et ma propre expérience, l'incrémentation $a++ fonctionne avec toutes
les versions de php.
C'est juste une question sans importance. Juste pour comprendre...

Le problème doit être ailleurs...
Avatar
Otomatic
jp écrivait :
Bonjour, en php4 $a++ fonctionnait et avec php7 je suis obligé de faire
$a = $a + 1. Quelqu'un sait pourquoi?

Les post et pré-incrémentations fontionnent toujours parfaitement, même
sous PHP 7.4.0.
Le problème est ailleurs.
Avatar
jp
Le Tue, 10 Dec 2019 09:45:51 +0100, Eric Demeester a écrit :
Le problème doit être ailleurs...

Ok. Merci à tous les deux. Du coup, je ne comprend plus d'où peut venir
le problème, n'étant pas un spécialiste. C'est bizarre quand-même...
Avatar
Otomatic
jp écrivait :
Ok. Merci à tous les deux. Du coup, je ne comprend plus d'où peut venir
le problème, n'étant pas un spécialiste. C'est bizarre quand-même...

Peut-être qu'en donnant la quinzaine de lignes qui entourent la
post-incrémentation $a++ et en expliquant pourquoi vous pensez que ça ne
fonctionne pas, nous pourrions voir d'où vient ce problème.
Avatar
Olivier Miakinen
Le 10/12/2019 03:33, jp a écrit :
Bonjour, en php4 $a++ fonctionnait et avec php7 je suis obligé de faire
$a = $a + 1. Quelqu'un sait pourquoi?

La variable s'appelle $a ou $variable ou encore autre chose ? Ce n'est
pas le même problème qu'avec count qui est devenu un mot-clé ?
--
Olivier Miakinen
Avatar
Olivier Miakinen
Le 10/12/2019 11:24, Otomatic a écrit :
Peut-être qu'en donnant la quinzaine de lignes qui entourent la
post-incrémentation $a++ et en expliquant pourquoi vous pensez que ça ne
fonctionne pas, nous pourrions voir d'où vient ce problème.

[OUI++]
--
Olivier Miakinen
Avatar
jp
Le Tue, 10 Dec 2019 11:30:38 +0100, Olivier Miakinen a écrit :
Le 10/12/2019 03:33, jp a écrit :
Bonjour, en php4 $a++ fonctionnait et avec php7 je suis obligé de faire
$a = $a + 1. Quelqu'un sait pourquoi?

La variable s'appelle $a ou $variable ou encore autre chose ? Ce n'est
pas le même problème qu'avec count qui est devenu un mot-clé ?

Pour la fonction que je nommais count(), j'ai compris comment je me suis
trompé. J'avais un script assez ancien qui utilisait une fonction vues().
En voulant reprendre ce script pour autre chose assez similaire, je l'ai
renommée count(). Je ne savais pas que c'était un mot réservé. Du coup ça
ne marchait plus et je ne comprenais pas pourquoi...
Dans le cas présent, c'est toujours le même script et la variable
s'appelle $counter. La post-incrémentation ne fonctionne pas. J'ai mis un
moment avant de savoir d'où venait l'erreur mais j'ai résolu le problème
en faisant $counter = $counter + 1;
Voici le petit script:
<?php
$counter = 0;
$ip = getenv("REMOTE_ADDR");
function counting($counter) {
$fp = fopen('download_counter.txt', 'w');
if ($fp) {
fwrite($fp, $counter);
fclose($fp);
}
}
$fp = fopen('download_counter.txt', 'r');
if ($fp) {
$counter = fgets($fp, 20);
fclose($fp);
if ( ($ip != 'MonIP') && ($ip != '127.0.0.1') ) {
$counter = $counter + 1;//C'est ici que $counter++ ne fonctionne pas...
counting($counter);
}
/*Affiche le compteur seulement quand c'est le webmaster qui se connecte.
=> décommenter la ligne A et mettre en commentaire la ligne B*/
else { echo $counter . ' téléchargements au moins.'; }//Ligne A
/*Affiche le compteur tout le temps => mettre en commentaire la ligne A
et décommenter la ligne B pour que tout le monde voit le compteur.*/
//echo $counter . ' téléchargements environ.';//Ligne B
}
else {
$counter++;
counting($counter);
echo $counter;
}
?>
Merci à tous pour vos réponses.
Avatar
jp
Le Tue, 10 Dec 2019 11:31:48 +0100, Olivier Miakinen a écrit :
Le 10/12/2019 11:24, Otomatic a écrit :
Peut-être qu'en donnant la quinzaine de lignes qui entourent la
post-incrémentation $a++ et en expliquant pourquoi vous pensez que ça
ne fonctionne pas, nous pourrions voir d'où vient ce problème.

[OUI++]

:)
Avatar
jp
Le Tue, 10 Dec 2019 11:24:25 +0100, Otomatic a écrit :
jp écrivait :
Ok. Merci à tous les deux. Du coup, je ne comprend plus d'où peut venir
le problème, n'étant pas un spécialiste. C'est bizarre quand-même...

Peut-être qu'en donnant la quinzaine de lignes qui entourent la
post-incrémentation $a++ et en expliquant pourquoi vous pensez que ça ne
fonctionne pas, nous pourrions voir d'où vient ce problème.

Merci pour la réponse. J'ai posté le script un peu plus bas dans ce fil.
Avatar
Didier
Le 10/12/2019 à 12:14, jp a écrit :
Le Tue, 10 Dec 2019 11:30:38 +0100, Olivier Miakinen a écrit :
Le 10/12/2019 03:33, jp a écrit :
Bonjour, en php4 $a++ fonctionnait et avec php7 je suis obligé de faire
$a = $a + 1. Quelqu'un sait pourquoi?

La variable s'appelle $a ou $variable ou encore autre chose ? Ce n'est
pas le même problème qu'avec count qui est devenu un mot-clé ?

Pour la fonction que je nommais count(), j'ai compris comment je me suis
trompé. J'avais un script assez ancien qui utilisait une fonction vues().
En voulant reprendre ce script pour autre chose assez similaire, je l'ai
renommée count(). Je ne savais pas que c'était un mot réservé. Du coup ça
ne marchait plus et je ne comprenais pas pourquoi...
Dans le cas présent, c'est toujours le même script et la variable
s'appelle $counter. La post-incrémentation ne fonctionne pas. J'ai mis un
moment avant de savoir d'où venait l'erreur mais j'ai résolu le problème
en faisant $counter = $counter + 1;
Voici le petit script:
<?php
$counter = 0;
$ip = getenv("REMOTE_ADDR");
function counting($counter) {
$fp = fopen('download_counter.txt', 'w');
if ($fp) {
fwrite($fp, $counter);
fclose($fp);
}
}
$fp = fopen('download_counter.txt', 'r');
if ($fp) {
$counter = fgets($fp, 20);
fclose($fp);
if ( ($ip != 'MonIP') && ($ip != '127.0.0.1') ) {
$counter = $counter + 1;//C'est ici que $counter++ ne fonctionne pas...
counting($counter);
}
/*Affiche le compteur seulement quand c'est le webmaster qui se connecte.
=> décommenter la ligne A et mettre en commentaire la ligne B*/
else { echo $counter . ' téléchargements au moins.'; }//Ligne A
/*Affiche le compteur tout le temps => mettre en commentaire la ligne A
et décommenter la ligne B pour que tout le monde voit le compteur.*/
//echo $counter . ' téléchargements environ.';//Ligne B
}
else {
$counter++;
counting($counter);
echo $counter;
}
?>
Merci à tous pour vos réponses.

Bjr,
Je sais qu'on ne peut pas gagner à tous les coups, mais regarde
peut-être là :
https://www.php.net/manual/fr/internals2.counter.counter-class.php
Didier.
1 2