Vous avez deux variables distinctes qui s'appellent toutes les deux $count, mais qui ont une valeur différente. portée . La première variable n'est pas déclarée explicitement, mais elle existe lorsque vous l'assignez pour la première fois.
La deuxième variable (à l'intérieur de la méthode) n'est visible que pour cette méthode. Puisque c'est statique sa valeur est conservée entre plusieurs exécutions de la même méthode. L'affectation $count = 0;
n'est exécuté que la première fois que la méthode est exécutée.
Comme pour l'opérateur d'incrémentation (++), le résultat de l'évaluation est la valeur avant il a été incrémenté, car le ( unaire ) vient après le nom de la variable. Donc oui, la sortie serait 5, 0, 1.
Si vous deviez écrire return ++$count;
le résultat aurait été 5, 1, 2.
Remarque : le ++$count
que vous avez dans votre code existant, cela équivaut effectivement à $count++
puisque le résultat de l'évaluation est écarté. L'effet sur le $count
est la même : elle est incrémentée de 1.
6 votes
Si c'est un travail à domicile, marquez-le comme tel.
23 votes
Je ne pense pas que ce soit un devoir, certaines personnes n'ont juste jamais utilisé de variables statiques en PHP (surtout si elles sont habituées à la programmation procédurale directe).
6 votes
Que fait le ++$count ; là-dedans ?
1 votes
Le nom $count est trompeur. Le $count à l'intérieur de la fonction n'est pas le même que le $count externe. Vous créez un test de quelque chose ?
1 votes
Cela ressemble plus à une question d'entretien qu'à un devoir.