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 :

[Système] pointeurs dans php5


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    146
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 146
    Par défaut [Système] pointeurs dans php5
    Bonjours,
    J'aimerais bien faire une file avec PHP5 mais je ne sais pas si ce language supporte les pointeurs.
    Merci.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 882
    Par défaut
    salut
    non php5 ne support pas les plus les pointeurs que php4, tu a juste les references

  3. #3
    Membre éclairé Avatar de nicoaix
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2004
    Messages
    571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2004
    Messages : 571
    Par défaut
    Avec quelques détails supplémentaires sur tes intentions je pourrais peut etre essayer d'apporter quelques éléments de réponses...

  4. #4
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    146
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 146
    Par défaut
    Alors y'a t'il un moyen pour créer une file dans PHP5 ??

  5. #5
    Membre éclairé Avatar de nicoaix
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2004
    Messages
    571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2004
    Messages : 571
    Par défaut
    Désolé mais je ne comprend pas ce que tu entends par "file".

  6. #6
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    146
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 146
    Par défaut
    Une file d'attente : FIFO (First In First Out) le contraire d'une liste FILO (First In Last Out)

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 882
    Par défaut
    regarde ce lien il pourra peut etre t'aider
    http://fr.php.net/manual/fr/function.posix-mkfifo.php

  8. #8
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    146
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 146
    Par défaut
    J'ai une classe SMS et une classe Envoie qui a pour rôle d'envoyer des SMS à autre système.
    Je doit créer une File FIFO qui contient les SMS à envoyer a l'autre système.

  9. #9
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    Facile :
    array_push
    array_shift

  10. #10
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    146
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 146
    Par défaut
    Merci pour votre aide mais je crois que j'ai trouvé ce que cherché. Il s'agit d'une classe Queue (file). Voici le code :
    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
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
     
    <?php
    /**
    * Queue class - under PHP 5
    *
    * @description This is an implementation of FIFO (First In First Out) queue.
    *
    * @copyright (c) 2003 Michal 'Seth' Golebiowski <sethmail at poczta dot fm>
    *   Released under the GNU General Public License
    *   license is attached to package in license.txt file
    *
    * @updated 10.08.2003
    *
    * @example example.php5 Simple example of puting ang geting datas from queue
    *
    * @requirement PHP 5
    *
    *
    *
    *
    * @greetings goes to all developers from Poland especially from php.pl :-)
    */
     
     
    /**
    * Default size of queue
    */
    define( 'QUEUE_DEFAULT_SIZE', 15 );
     
     
    /**
    * Abstract class AQueue of FIFO queue
    * @version 1.5
    */
    abstract class AQueue
    {
      /**
      * Queue constructor
      * @param int $intQueue - size of queue
      */
      abstract public function __construct( $intSize = QUEUE_DEFAULT_SIZE );
     
      /**
      * Queue destructor
      * Destroy queue items array
      */
      abstract public function __destruct();
     
      /**
      * Add item to queue
      * @param obj &$objQueueItem - queue item object
      * @return true if added to queue or false if queue is full and item could not be added
      */
      abstract public function Put( &$objQueueItem );
     
      /**
      * Get item from queue
      * @return object (queue iteme) or false if there is now items in queue
      */
      abstract public function Get();
     
      /**
      * Check if queue is empty
      * @return true if it is empty or false if not
      */
      abstract public function IsEmpty();
     
      /**
      * Clear queue
      */
      abstract public function Clear();
    }
     
     
    /**
    * Implementation of abstract class AQueue
    * @version 1.9
    */
    class Queue extends AQueue
    {
      private
        $arrQueue,       // Array of queue items
        $intBegin,       // Begin of queue - head
        $intEnd,         // End of queue - tail
        $intArraySize,   // Size of array
        $intCurrentSize; // Current size of array
     
     
      public function __construct( $intSize = QUEUE_DEFAULT_SIZE )
      {
        $this->arrQueue     = Array();
        $this->intArraySize = $intSize;
     
        $this->Clear();
      }
     
     
      public function __destruct()
      {
        unset( $this->arrQueue );
      }
     
     
      public function Put( &$objQueueItem  )
      {
        if ( $this->intCurrentSize >= $this->intArraySize )
        {
          return false;
        }
     
        if ( $this->intEnd == $this->intArraySize - 1 )
        {
          $this->intEnd = 0;
        }
        else
        {
          $this->intEnd++;
        }
     
        $this->arrQueue[ $this->intEnd ] = $objQueueItem;
        $this->intCurrentSize++;
     
        return true;
      }
     
     
      public function Get()
      {
        if ( $this->IsEmpty() ){
          return false;
        }
     
        $objItem = $this->arrQueue[$this->intBegin];
     
        if ( $this->intBegin == $this->intArraySize - 1 )
        {
          $this->intBegin = 0;
        }
        else
        {
          $this->intBegin++;
        }
     
        $this->intCurrentSize--;
     
        return $objItem;
      }
     
     
      public function IsEmpty()
      {
        return ( $this->intCurrentSize == 0 ? true : false );
      }
     
     
      public function Clear()
      {
        $this->arrCurrentSize = 0;
        $this->intBegin       = 0;
        $this->intEnd         = $this->intArraySize - 1;
      }
    }
    ?>

  11. #11
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    146
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 146
    Par défaut
    Et voici un exemple sur l'utilisation de cette classe :
    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
     
    <?php
    /**
    * Example of using queue for PHP 5
    */
     
    // Include queue class
    require_once( 'queue.class.php5' );
     
    // Test item queue class
    class ItemTest
    {
      public $id = 0;
     
      public function __construct( $id )
      {
        $this->id = $id;
      }
    }
     
    $objQueue = new Queue;
     
    // Adding some items to queue
    for ( $i = 1; $i <= 15; $i ++ )
    {
      $objQueue->Put( new ItemTest( $i ) );
    }
     
    // Geting items from queue and printing them
    while ( $result = $objQueue->Get() )
    {
      print $result->id."<br>";
    }
    ?>
    Il ne me reste plus qu'a déclarer un object SMS et à remplacer la ligne
    $objQueue->Put( new ItemTest( $i ) );
    Par
    $objQueue->Put( new ItemTest( $SMS ) );

    Et voila...

  12. #12
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    pourquoi faire simple quand on peut faire compliqué ?

Discussions similaires

  1. Libérer des pointeurs dans une std::map
    Par GaldorSP dans le forum SL & STL
    Réponses: 2
    Dernier message: 09/07/2005, 14h42
  2. Libération de pointeurs dans un std::vector
    Par G dans le forum SL & STL
    Réponses: 17
    Dernier message: 06/04/2005, 22h37
  3. Réponses: 2
    Dernier message: 15/11/2004, 15h12
  4. Utilisation de Pointeurs dans API windows
    Par Drooxy dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 13/03/2003, 22h39
  5. [Turbo Pascal] Allocation et désallocation de pointeurs dans une fonction
    Par neird dans le forum Turbo Pascal
    Réponses: 13
    Dernier message: 17/11/2002, 20h14

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