IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Méthodes et propriétés statiques [PHP 5.3]


Sujet :

Langage PHP

  1. #1
    Débutant Avatar de ETVigan
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2010
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2010
    Messages : 660
    Points : 170
    Points
    170
    Par défaut Méthodes et propriétés statiques
    Bonjour,

    J'ai un souci avec les méthodes et propriétés statiques,
    J'ai fait une petite page de test afin de réduire les side-effects.
    En fait, je souhaite simuler des étapes et j'utilise les boutons PREV/NEXT pour passer de l'une à l'autre.
    Passer cela va MAIS se souvenir de l'étape est pour l'instant impossible.
    Vous trouverez la source de mon est en pièce attachée.

    Le log PHP en dit déjà bcp....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    [15-Jul-2010 10:59:15] PHP Notice:  Browse[+1][1] Start[0] - Curr[1] - End[3] in F:\WebSites\static\index.php on line 123
    [15-Jul-2010 10:59:17] PHP Notice:  Browse[+1][0] Start[0] - Curr[0] - End[3] in F:\WebSites\static\index.php on line 121
    [15-Jul-2010 10:59:17] PHP Notice:  NEXT - Start[0] - Curr[0] - Last[3] in F:\WebSites\static\index.php on line 46
    [15-Jul-2010 10:59:17] PHP Notice:  NEXT - Start[0] - Curr[1] - Last[3] in F:\WebSites\static\index.php on line 51
    [15-Jul-2010 10:59:17] PHP Notice:  Browse[+1][1] Start[0] - Curr[1] - End[3] in F:\WebSites\static\index.php on line 123
    
    [15-Jul-2010 10:59:18] PHP Notice:  Browse[+1][0] Start[0] - Curr[0] - End[3] in F:\WebSites\static\index.php on line 121
    [15-Jul-2010 10:59:18] PHP Notice:  NEXT - Start[0] - Curr[0] - Last[3] in F:\WebSites\static\index.php on line 46
    [15-Jul-2010 10:59:18] PHP Notice:  NEXT - Start[0] - Curr[1] - Last[3] in F:\WebSites\static\index.php on line 51
    [15-Jul-2010 10:59:18] PHP Notice:  Browse[+1][1] Start[0] - Curr[1] - End[3] in F:\WebSites\static\index.php on line 123
    
    [15-Jul-2010 10:59:19] PHP Notice:  Browse[+1][0] Start[0] - Curr[0] - End[3] in F:\WebSites\static\index.php on line 121
    [15-Jul-2010 10:59:19] PHP Notice:  NEXT - Start[0] - Curr[0] - Last[3] in F:\WebSites\static\index.php on line 46
    [15-Jul-2010 10:59:19] PHP Notice:  NEXT - Start[0] - Curr[1] - Last[3] in F:\WebSites\static\index.php on line 51
    [15-Jul-2010 10:59:19] PHP Notice:  Browse[+1][1] Start[0] - Curr[1] - End[3] in F:\WebSites\static\index.php on line 123
    [15-Jul-2010 10:59:21] PHP Notice:  Browse[+1][0] Start[0] - Curr[0] - End[3] in F:\WebSites\static\index.php on line 121
    [15-Jul-2010 10:59:21] PHP Notice:  NEXT - Start[0] - Curr[0] - Last[3] in F:\WebSites\static\index.php on line 46
    [15-Jul-2010 10:59:21] PHP Notice:  NEXT - Start[0] - Curr[1] - Last[3] in F:\WebSites\static\index.php on line 51
    [15-Jul-2010 10:59:21] PHP Notice:  Browse[+1][1] Start[0] - Curr[1] - End[3] in F:\WebSites\static\index.php on line 123
    [15-Jul-2010 10:59:22] PHP Notice:  Browse[+1][0] Start[0] - Curr[0] - End[3] in F:\WebSites\static\index.php on line 121
    [15-Jul-2010 10:59:22] PHP Notice:  NEXT - Start[0] - Curr[0] - Last[3] in F:\WebSites\static\index.php on line 46
    [15-Jul-2010 10:59:22] PHP Notice:  NEXT - Start[0] - Curr[1] - Last[3] in F:\WebSites\static\index.php on line 51
    [15-Jul-2010 10:59:22] PHP Notice:  Browse[+1][1] Start[0] - Curr[1] - End[3] in F:\WebSites\static\index.php on line 123
    [15-Jul-2010 10:59:22] PHP Notice:  Browse[+1][0] Start[0] - Curr[0] - End[3] in F:\WebSites\static\index.php on line 121
    [15-Jul-2010 10:59:22] PHP Notice:  NEXT - Start[0] - Curr[0] - Last[3] in F:\WebSites\static\index.php on line 46
    [15-Jul-2010 10:59:22] PHP Notice:  NEXT - Start[0] - Curr[1] - Last[3] in F:\WebSites\static\index.php on line 51
    [15-Jul-2010 10:59:22] PHP Notice:  Browse[+1][1] Start[0] - Curr[1] - End[3] in F:\WebSites\static\index.php on line 123
    Un p'tit coup de main me ferait plaisir.....

    Merci à tous
    Fichiers attachés Fichiers attachés
    Esteban

  2. #2
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Bonjour,

    La durée de vie d'un membre statique est la durée de vie de ta requête. Si tu veux conserver des valeurs, utilises les sessions ou une base de données.

  3. #3
    Débutant Avatar de ETVigan
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2010
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2010
    Messages : 660
    Points : 170
    Points
    170
    Par défaut
    C'est exact mais si cela existe... cela doit bien pouvoir être utilisé, non ?
    J'apprends et j'essaye... c'est la 2ieme X que je post un sujet similaire, lequel n'a jamais été élucidé mais pour la 1ère X, j'ai une alternative...

    Au niveau coding proprement-dit, tu n'as rien vu ?

    Merci tout de même

    N"empêche, j'aurai aimé ne pas mourir con

    Au fait Thomas,

    As-tu une idée de ce qu'il se passe avec ma DB, je l'ai déchargée, recrée en UTF8, rechargée mais j'ai tjs ce problème.... je ne sais ni insérer ni updater s'il y a des accents.....

    Merci mais je n'ai plus le post original....

    Thomas,

    M'est venu une idée afin de comprendre les variables statiques.
    Est ce utilisé uniquement pour les occurrences de la dite-classe ou pour toutes variables ?
    Parce que chaque X que je rentre dans mon test, j'ai +1 pour $curr, donc reste qlqpart, peut être en session......
    Ceci expliquerait peut être cela !

    A supposer que je doive passer à une variable de session, comment fais-je pour la détruire quand je quitte (quelque soit la façon de quitter) le formulaire ?
    En HTML, onblur dans la forme ?

    Merci
    Esteban

  4. #4
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Parce que chaque X que je rentre dans mon test, j'ai +1 pour $curr, donc reste qlqpart, peut être en session......
    Non c'est stocké dans la définition de ta classe, de manière statique, dans le contexte de ta requête. Tu as +1 à ton test mais à chaque nouvelle requête (=rafraichissement de page) tu perds tes valeurs.

    Il faut donc utiliser les sessions ou n'importe quel autre procédé de stockage (fichier, db etc)
    A supposer que je doive passer à une variable de session, comment fais-je pour la détruire quand je quitte (quelque soit la façon de quitter) le formulaire ?
    Avec unset / session_destroy, par contre le notion de "quelque soit la facon de quitter" n'existe pas. Tu peux lancer ca sur un bouton de déconnexion, sur la fermeture du navigateur, ou mettre une durée de vie de ta session. Tu ne pourras par contre par gérer la fermeture intempestive du navigateur (plantage par exemple).

  5. #5
    Débutant Avatar de ETVigan
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2010
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2010
    Messages : 660
    Points : 170
    Points
    170
    Par défaut Méthodes et propriétés statiques
    Thomas,

    Je ne pige pas pkoi PHP s'est démerdé pour nous fournir des propriétés et méthodes statiques, tu dis que je perds la valeur et c'est vrai mais tout est écrit selon le standard PHP et je ne devrais pas la perdre....
    Si j'utilise une variable de session, je ne peux pas être sur de l'avoir supprimée sans utiliser Javascript (onblur, onchakge, onsumit......) mais dans du js, on ne peut pas insérer du PHP par définition....
    La gestion des events n'existe pratiquement pas en PHP.......
    Sur la page standard de mon site, il y a (sans compter les 2 menus) 3 à 5 liens sur image.... et tout cela fait que tu quittes la forme et donc que la variable de session devrait être détruite.....
    Intellectuellement, je me sens vexé car il me manque qlqchose.... bon on va faire avec comme on dit en belge.... sauf si suggestion de detniière minute de ta part.... ou de qlqu'un d'autre, on ne sait jamais.... Let's hope
    Merci tout de même !
    Esteban

  6. #6
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    Citation Envoyé par ETVigan Voir le message
    Thomas,

    Je ne pige pas pkoi PHP s'est démerdé pour nous fournir des propriétés et méthodes statiques, tu dis que je perds la valeur et c'est vrai mais tout est écrit selon le standard PHP et je ne devrais pas la perdre
    Citation Envoyé par DOC PHP
    Le fait de déclarer des proriétés ou des méthodes comme statiques vous permet d'y accéder sans avoir besoin d'instancier la classe
    En php statique n'a absolument rien à voir avec la persistence des données de pages en page.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Débutant Avatar de ETVigan
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2010
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2010
    Messages : 660
    Points : 170
    Points
    170
    Par défaut Méthodes et propriétés statiques
    J'ai modifié ma source pour utiliser des variables de session.
    Le début et la fin sont corrects.
    Esteban

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Déclarer méthode ou propriété statique dans classe
    Par mapmip dans le forum Ext JS / Sencha
    Réponses: 1
    Dernier message: 19/06/2013, 16h07
  2. Réponses: 6
    Dernier message: 11/07/2007, 16h50
  3. Réponses: 6
    Dernier message: 05/02/2007, 20h49
  4. Méthodes abstraites et statiques
    Par Asnidren dans le forum Langage
    Réponses: 24
    Dernier message: 01/09/2006, 14h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo