Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/11/2007, 23h03   #1
Futur Membre du Club
 
Inscription : avril 2007
Messages : 30
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 30
Points : 15
Points : 15
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 :
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;
 
}
sorenson2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2007, 00h11   #2
Membre chevronné
 
Avatar de |PaRa-BoL
 
Inscription : novembre 2003
Messages : 737
Détails du profil
Informations personnelles :
Âge : 25

Informations forums :
Inscription : novembre 2003
Messages : 737
Points : 782
Points : 782
PHP3 ?

Tu as une erreur, une notice ?
__________________
http://www.ape-project.org/
|PaRa-BoL est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2007, 00h17   #3
Futur Membre du Club
 
Inscription : avril 2007
Messages : 30
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 30
Points : 15
Points : 15
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 ?
sorenson2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2007, 00h24   #4
Membre chevronné
 
Avatar de |PaRa-BoL
 
Inscription : novembre 2003
Messages : 737
Détails du profil
Informations personnelles :
Âge : 25

Informations forums :
Inscription : novembre 2003
Messages : 737
Points : 782
Points : 782
Citation:
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.
__________________
http://www.ape-project.org/
|PaRa-BoL est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/12/2007, 17h19   #5
Futur Membre du Club
 
Inscription : avril 2007
Messages : 30
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 30
Points : 15
Points : 15
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 !?
sorenson2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2007, 01h53   #6
Nouveau Membre du Club
 
Développeur Web
Inscription : avril 2006
Messages : 37
Détails du profil
Informations personnelles :
Âge : 24

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : avril 2006
Messages : 37
Points : 37
Points : 37
Code :
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.
Méthylbro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2007, 02h06   #7
Membre chevronné
 
Avatar de |PaRa-BoL
 
Inscription : novembre 2003
Messages : 737
Détails du profil
Informations personnelles :
Âge : 25

Informations forums :
Inscription : novembre 2003
Messages : 737
Points : 782
Points : 782
Heu si Object est un type...
En revanche "User" n'est plus utilisé depuis PHP3.
__________________
http://www.ape-project.org/
|PaRa-BoL est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2007, 02h20   #8
Nouveau Membre du Club
 
Développeur Web
Inscription : avril 2006
Messages : 37
Détails du profil
Informations personnelles :
Âge : 24

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : avril 2006
Messages : 37
Points : 37
Points : 37
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
Méthylbro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2007, 02h55   #9
Membre chevronné
 
Avatar de |PaRa-BoL
 
Inscription : novembre 2003
Messages : 737
Détails du profil
Informations personnelles :
Âge : 25

Informations forums :
Inscription : novembre 2003
Messages : 737
Points : 782
Points : 782
Non object est bien un type...

Ex :

Code :
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";
?>
=>

Citation:
para@Jami:~$ php x.php
object
para@Jami:~$
__________________
http://www.ape-project.org/
|PaRa-BoL est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2007, 19h03   #10
Futur Membre du Club
 
Inscription : avril 2007
Messages : 30
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 30
Points : 15
Points : 15
et donc pour mon problème ?
sorenson2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h35.


 
 
 
 
Partenaires

Hébergement Web