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 :

[POO] Script tiré d'un tutorial qui ne marche pas.


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2008
    Messages : 215
    Par défaut [POO] Script tiré d'un tutorial qui ne marche pas.
    Bonjour,

    J'ai trouvé un tutoriel assez intéressant au sujet de de la POO pour débutant. Cependant quand je fait un essai en local du programme j'ai une jolie erreur.

    Voici le script :
    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    <?php
    class Stylo {
     
      static private $niveau_encre_max = 100;
      static private $niveau_encre_min = 25;
     
      private $niveau_encre;
      protected $couleur_normale = '#000000';
      protected $couleur_fin = '#C0C0C0';
      public $statut;
     
      private function peutEcrire() {
        if (!$this->statut) {
          $result = false;
        } elseif ($this->niveau_encre<=0) {
          $result = false;
        } else {
          $result = true;
        }
        return $result;
      }
     
      public function __construct() {
        $this->statut = false;
        $this->niveau_encre = self::$niveau_encre_max;
      }
     
      public function click() {
        if ($this->statut) {
          $this->statut = false;
        } else {
          $this->statut = true;
        }
      }
     
      public function ecrire($texte) {
        if ($this->peutEcrire()) {
          echo '<p style="color:'.$this->couleur_normale.'">';
          $nb_caracteres = strlen($texte);
          $texte = htmlentities($texte);
          $texte = str_split($texte);
          $i = 0;
          while($this->peutEcrire() && $i<=$nb_caracteres) {
            if ($this->niveau_encre==self::$niveau_encre_min) {
              $format = '<span style="color:'.$this->couleur_fin.'">%s';
            } else {
              $format = "%s";
            }
            printf($format, $texte[$i]);
            $i++;
            $this->niveau_encre --;
          }
          if ($this->niveau_encre<=self::$niveau_encre_min) {
            echo "</span>";
          }
          echo "</p>\n";
        }
      }
     
    }
     
    $monBic = new Stylo();
    $monBic->ecrire('Essayez d\’écrire sans enlever le capuchon…') ;
    $monBic->click() ;
    $monBic->ecrire('Un premier paragraphe.') ;
    $monBic->ecrire('Un second paragraphe qui n\'iras pas jusque au bout car mon stylo va certainement manquer d\'encre.');
     
    $monBic->click() ;
    ?>
    Voici l'erreur que j'obtiens:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Notice: Undefined offset: 22 in C:\Program Files\EasyPHP 2.0b1\www\Lab\essai\test.php on line 49
    Merci de m'éclaircir, apparement ce serait un problème de tableau.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Correction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     while($this->peutEcrire() && $i<$nb_caracteres) {
    La premiere chaine envoyée contient 22 caracteres numérotés de 0 à 21.
    Si on fait <= on tente le caractere 22, qui n'existe pas.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2008
    Messages : 215
    Par défaut
    Ok merci bien!

  4. #4
    Membre confirmé
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    37
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2006
    Messages : 37
    Par défaut
    Ca m'apprendra à me relire ...

    Sinon Niki59, tu a aimé ce tutoriel ?

  5. #5
    Membre averti
    Inscrit en
    Mai 2009
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 32
    Par défaut
    Et pourrez t'on avoir un lien ?

  6. #6
    Membre confirmé
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    37
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2006
    Messages : 37
    Par défaut
    Introduction à la POO avec PHP

    (c'est pas du spam ; on me l'a demandé).

    A savoir que depuis ; quelqu'un à écrit un super article sur le même sujet dans PHPSolution (celui de mai il me semble ; peut être le hors série mais je ne suis plus sur). Je conseille donc à tous ceux que ca intéresse de retrouver ce numéro

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 09/05/2009, 03h12
  2. [MySQL] Problème avec un script qui ne marche pas
    Par greg056 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 15/03/2009, 21h07
  3. Script tout simple qui ne marche pas sous IE
    Par Bleuarff dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 14/02/2007, 19h48
  4. script qui ne marche pas chez firefox
    Par phpaide dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 24/05/2006, 14h20
  5. Page de login -- script PHP qui ne marche pas
    Par Alexlesilex dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 6
    Dernier message: 24/04/2006, 17h32

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