J'ai mis une propriété dans un constructeur comme sipropriété ne mise à jour dans l'objet lorsque la page est affichée
function __construct()
{
$this->count = count(@$_SESSION['filearray']); //count how many files in array
}
et l'utiliser dans les états de l'état if($this->count > 10) //then do something
, mais il semble que le compte est pas mis à jour quand j'utilise une autre méthode d'injection de valeurs dans ce 'filearray' jusqu'à ce que je rafraîchisse la page.
Est-ce que je fais quelque chose de mal? Je pensais que mon constructeur détecterait qu'un changement avait été fait dans la session et chaque fois que j'appellerais $ this-> count, j'obtiendrais la valeur de comptage actuelle, mais il semblerait qu'il y ait un pas de retard jusqu'à ce que je rafraîchisse la page.
Si cela est vague, je peux comprendre ma page de formulaire qui a tous les appels de méthode, mais c'est la jist de ma question, pourquoi ma propriété ne mise à jour et comment puis-je résoudre ce problème :)
TIA
S'il vous plaît noter que l'aide de l'opérateur 'de @' est mauvaise forme et un coup de performance . Essayez 'array_key_exists ('filearray', $ _SESSION) && is_array ($ _ SESSION ['filearray'])? count ($ _ SESSION ['filearray']): 0; '- c'est plus bavard, mais il est libre des avertissements et des notifications que l'opérateur' @ 'cache. – Charles
Merci pour le conseil Charles, je fais de mon mieux pour ne pas utiliser '@' mais parfois je suis fainéant pour l'ampleur du travail que je fais. Mais bon à savoir de toute façon, quelqu'un a besoin de faire un php astuces manuel :)/moi retourne à google – Jared