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] settype obligatoire sauf en ligne


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 30
    Points : 25
    Points
    25
    Par défaut [POO] settype obligatoire sauf en ligne
    Bonjour,

    j'ai un problème incroyable : j'ai un site en local, qui fonctionne, sur lequel j'ai un tableau (array) que je converti en objet (j'en ai le droit) en faisant la commande suivante : settype($tab,'object').

    Lorsque je passe mon site en ligne, ça ne marche plus, mon settype ne fait plus sont boulot et je ne peux plus lire mon tableau...

    Es-ce un problème de configuration php, de version ... que sait-je, j'ai cherché et rien.

    Pourriez-vous me donner un coup de main ex de 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
     
     
    $tab=array(
                        array("id"=>1, "nom"=>Dupond, "prenom"=>Durant),
                        array("id"=>2, "nom"=>Dupont, "prenom"=>Bernard)
                      );
     
    foreach($tab as $tab2){
     
      settype($tab2,"object");
     
      echo $tab2->id." ".$tab2->nom." ".$tab2->prenom;
     
    }

  2. #2
    Membre éclairé Avatar de |PaRa-BoL
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    738
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 738
    Points : 876
    Points
    876
    Par défaut
    PHP3 ?

    Tu as une erreur, une notice ?

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 30
    Points : 25
    Points
    25
    Par défaut
    En faite,

    en local j'ai php4 et iis, sur le serveur j'ai apache2 et php5
    et J'ai bien une erreur lorsque je mets mon site en ligne : 'trying to get property on a non-object'.

    une idée ?

  4. #4
    Membre éclairé Avatar de |PaRa-BoL
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    738
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 738
    Points : 876
    Points
    876
    Par défaut
    para@Jami:~$ php5 a.php
    Array
    (
    [0] => Array
    (
    [id] => 1
    [nom] => Dupond
    [prenom] => Durant
    )

    [1] => Array
    (
    [id] => 2
    [nom] => Dupont
    [prenom] => Bernard
    )

    )
    1 Dupond Durant2 Dupont Bernard
    Semble bien marcher avec PHP5.

    Vérifie si le settype() retourne bien "true".

    Citation Envoyé par php.net
    La conversion d'un tableau en objet fera que les propriétés seront nommées par les clés du tableau et avec les valeurs correspondantes.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 30
    Points : 25
    Points
    25
    Par défaut
    j'ai essayé sur un autre domaine (parce que je suis pas au bureau...) et sur ce domaine, aucun soucis... c'est aussi du php5 avec apache. Je ne comprend pas. j'ai pas encore pu vérifier ce que settype me renvoie sur le domaine sur lequel ça ne fonctionne pas (faudra que je vois ça lundi). C'est forcément un problème de config !?

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

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2006
    Messages : 37
    Points : 43
    Points
    43
    Par défaut
    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
    class User {
     
      public $id;
      public $nom;
      public $prenom;
     
      public function __construct($id, $nom, $prenom) {
     
        $this->id = $id;
        $this->nom = $nom;
        $this->prenom = $prenom;
     
      }
     
    }
     
    $tab=array(
                        array("id"=>1, "nom"=>Dupond, "prenom"=>Durant),
                        array("id"=>2, "nom"=>Dupont, "prenom"=>Bernard)
                      );
     
    foreach($tab as $tab2){
     
      settype($tab2,"User");
     
      echo $tab2->id." ".$tab2->nom." ".$tab2->prenom;
     
    }
    "Object" n'est pas un type ! C'est un pseudo type utilisé dans la doc php pour spécifier qu'une fonction attend le nom d'une classe.
    Il faut lire les introductions des documentations ; ca sert à ca.

  7. #7
    Membre éclairé Avatar de |PaRa-BoL
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    738
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 738
    Points : 876
    Points
    876
    Par défaut
    Heu si Object est un type...
    En revanche "User" n'est plus utilisé depuis PHP3.

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

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2006
    Messages : 37
    Points : 43
    Points
    43
    Par défaut
    hum ... c'est sans doutes que Object est une classe déclarée par la SPL alors.

    mais en soit ; on ne peut pas considéré un objet comme un type. Le type de l'objet est défini par la classe qu'il implémente ...

    par exemple :
    - $objet est un objet de type MyClass
    - $string est un objet de type String
    - $array est un objet de type Array
    ...

    http://fr.php.net/manual/fr/language.types.object.php

  9. #9
    Membre éclairé Avatar de |PaRa-BoL
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    738
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 738
    Points : 876
    Points
    876
    Par défaut
    Non object est bien un type...

    Ex :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <?php
            class test {
                    public function __construct() {
     
                    }
            }
     
            $t = new test();
     
            echo gettype($t) . "\n";
    ?>
    =>

    para@Jami:~$ php x.php
    object
    para@Jami:~$

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 30
    Points : 25
    Points
    25
    Par défaut
    et donc pour mon problème ?

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

Discussions similaires

  1. Addition de colonne mysql sauf une ligne
    Par syldupas dans le forum Débuter
    Réponses: 15
    Dernier message: 02/12/2013, 12h15
  2. lire un fichier sauf certaines lignes
    Par xavierdestev dans le forum Débuter
    Réponses: 5
    Dernier message: 24/10/2013, 20h39
  3. [XL-2007] Supprimer sauf la ligne 7
    Par Nounours1 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 21/07/2013, 18h25
  4. Réponses: 2
    Dernier message: 19/01/2011, 15h41
  5. supprimer toutes les lignes d'un flexgrid sauf la ligne de titre
    Par cari dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 11/08/2006, 10h39

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