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 :

Variables modifiables écrasables


Sujet :

Langage PHP

  1. #1
    Membre actif
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2012
    Messages : 47
    Par défaut
    Question a 0e

    pourquoi si je défini $a cela plante ???

    je pensais que PHP pouvait tout accepter lol type modifiable à volonté variables classables à volonté ???

    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
    <?php
    $a=1;
    $x="PHP5";
    echo "\$x vaut : $x et est de type ", gettype($x),"<br />";
    $a[]=&$x;
    echo "\$a[0] vaut : $a[0] et est de type ", gettype($a),"<br />";
    $y=" 5 eme version de PHP";
    echo "\$y vaut : $y et est de type ", gettype($y),"<br />";
    $z=$y*10;
    echo "\$z vaut : $z et est de type ", gettype($z),"<br />";
    $x.=$y;
    echo "\$x vaut : $x et est de type ", gettype($x),"<br />";
    $y*=$z;
    echo "\$y vaut : $y et est de type ", gettype($y),"<br />";
    $a[0]="MySQL";
    echo "\$a[0] vaut : {$a[0]} et est de type ", gettype($a),"<br />";
    echo "\$x[0] vaut : {$x[0]} et est de type ", gettype($x),"<br />";
    ?>
    Warning: Cannot use a scalar value as an array

    On peut pas avoir une variable $a de type int

    puis la transformer en tableau ?

  2. #2
    Membre Expert
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Par défaut
    bah non.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    //dans ce cas soit il faut écrire directement
    $a[]=1 ;
     
    //soit il faut faire
    $a=1;
    unset($a);//recyclage
    $a[]=1;
     
    //soit 
    $a=1;
    $a=array();//recyclage
    $a[]=1;
    de l'autre côté $a et $b ne sont pas des noms de variables passionnants.

  3. #3
    Membre actif
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2012
    Messages : 47
    Par défaut
    Une variable simple peut devenir string, puis int, puis bool pour finir float, mais elle ne peut pas devenir un tableau ???

    C 'est des type de variable bien distinct ???

    ne peut pas être écrasée par $supernom[] = $monnom.

    On m'aurait menti...

  4. #4
    Membre Expert
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Par défaut
    si. regarde ma version avec array().

    mais l'opération $a[] ajoute un élément a la fin d'un tableau. Si le tableau n'existe pas il est créé mais si c'est un entier alors c'est qu'il y a un probleme algorithmique. C'est bizarre de vouloir ajouter un item de tableau à un entier.

    tu aurais pu avoir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $a=1;
    $a=array();
    $a[0]=2;
    var_dump($a);
    voilà PHP rale si tu lui fais faire n'importe quoi et c'est mieux comme ça.

    edit: si ça peut t'aider un tableau est un type composé alors qu'un entier est un type "simple" (scalaire).

  5. #5
    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
    $supernom[] ajoute une entrée au tableau $supernom existant.

    L'écrasement d'un entier par un tableau fonctionne comme tout le reste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $a = 1;
    $a = array('foo');
    Mais bon comme le dit Gene69, dans la vraie vie, on ne recycle pas les noms de variables comme ça.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Membre actif
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2012
    Messages : 47
    Par défaut
    Citation Envoyé par gene69 Voir le message
    si. regarde ma version avec array().

    mais l'opération $a[] ajoute un élément a la fin d'un tableau. Si le tableau n'existe pas il est créé mais si c'est un entier alors c'est qu'il y a un probleme algorithmique. C'est bizarre de vouloir ajouter un item de tableau à un entier.
    Oui c'est bizarre car je cherche pas à faire quelque chose de logique je suis en phase d'apprentissage, alors je teste je fais des test pour comprendre par l'exemple.

    donc je pensais que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $a=1;
    $x="PHP5";
    $a[]=&$x;
    allait faire que je crée une variable $a puis une variable $x

    1°) puis j'écrase ma variable $a par une variable $x en créant un tableau qui porte ne nom de ma variable $a de départ. un test qui sert a rien lol mais qui me permet de savoir ce que je peux faire et pas faire.

    2°) au pire je pensais qu'il allait me créer la variable $a[1]

    l'opération $a[] ajoute un élément a la fin d'un tableau. OK ça merci cela me sert pour mieux comprendre.

    Mais j'ai encore un peu de mal a comprendre pourquoi ce se passe pas comme dans le 1°) ou le 2°)

  7. #7
    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
    Le seul "pourquoi" c'est que PHP ne fonctionne pas comme ça.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

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

Discussions similaires

  1. Variable modifiée sans raisons
    Par kilopoli dans le forum C++
    Réponses: 5
    Dernier message: 26/04/2008, 07h28
  2. Astuce pour récupérer une variable modifiée
    Par koopajah dans le forum XSL/XSLT/XPATH
    Réponses: 11
    Dernier message: 12/06/2007, 18h20
  3. variable modifié par une session
    Par Mr Meuble dans le forum Langage
    Réponses: 3
    Dernier message: 08/08/2006, 15h15
  4. Réponses: 2
    Dernier message: 01/02/2006, 18h25

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