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 :

declaration d'une variable en array() obligatoire ?


Sujet :

Langage PHP

  1. #1
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2007
    Messages
    630
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2007
    Messages : 630
    Points : 234
    Points
    234
    Par défaut declaration d'une variable en array() obligatoire ?
    Bonjour,

    j'aimerais savoir quelle est la bonne façon de créer / utiliser un tableau. Je m'explique: j'ai une fonction ma_fonction() qui renvoie un tableau. je veux réeutiliser le tableau renvoyé.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $tableau = array();
    $tableau = ma_fonction();
    Ceci fontionne aussi, sans déclarer le tableau à l'avance:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $tableau = ma_fonction();
    Laquelle des deux méthodes est correcte ?
    Quelle est la conséquence si je ne déclare pas le tableau en tant qu'array()

    merci d'avance pour votre aide.

  2. #2
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Salut

    Laquelle des deux méthodes est correcte ?
    Quelle est la conséquence si je ne déclare pas le tableau en tant qu'array()
    Ceci fait partie des spécificités de Php, les déclarations ne sont pas obligatoires.
    C'est le principe de base.

    Maintenant ça dépend du contexte.
    Si on prend stricto texto ton exemple, une déclaration sera inutile vu que tu confirme que la fonction renverra un tableau.

    Autre exemple basique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $tableau = array();
     
    if (... une condition ...) {
        $tableau = ma_fonction();
    }
     
    foreach ($tableau as $val) {
        // traitements
    }
    Si ici on supprime la déclaration, il y a un risque d'erreur lors de la boucle foreach() car c'est dépendant de l'alternative.



    Les déclarations se voient beaucoup plus dans un contexte Objet, cela a plus de sens à mon avis (rarement dans du code procédural).
    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    class UnObjet {
        public $attribut_public;
        protected $attribut_protected;
        private $attribut_private;
     
        // ... etc ...
    }
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 28/08/2009, 11h06
  2. Mettre une variable dans array
    Par Freedolphin dans le forum Langage
    Réponses: 9
    Dernier message: 22/07/2008, 13h43
  3. message d'erreur avec la declaration d'une variable
    Par safezahra dans le forum VB.NET
    Réponses: 3
    Dernier message: 13/06/2008, 00h48
  4. Declaration d'une Variable globale
    Par khaled69100 dans le forum C++
    Réponses: 7
    Dernier message: 06/06/2008, 01h13
  5. Réponses: 6
    Dernier message: 29/04/2006, 20h37

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