Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2989 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  PHP 5.3.3 déclaration d'un objet

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

PHP 5.3.3 déclaration d'un objet

n°2019598
Scarf3ss3
Posté le 28-08-2010 à 14:33:04  profilanswer
 

Bonjour à tous,
 
J'ai un petit problème de compréhension avec php 5.3.3. Pourquoi désormais j'ai cette erreur:
 
Strict Standards: Creating default object from empty value in

 en déclarant un objet de cette façon
 

Code :
  1. $test->test = 'ok';


 
Comment déclarer un objet alors ?
Ca date peut être d'une version antérieure à 5.3.3, j'étais en 5.1 avant.
 
Merci de votre aide  :jap:

mood
Publicité
Posté le 28-08-2010 à 14:33:04  profilanswer
 

n°2019601
flo850
moi je
Posté le 28-08-2010 à 15:01:42  profilanswer
 

tu défini explicitement ta classe:

Code :
  1. // dans Bidule.php
  2. class Bidule{
  3.    protected $truc;  //accessible de l'interieur de cette classe et dans les classes filles ( qui héritent)
  4.    private $machin; // non accessible hors de cette classe
  5.    public $test;  //accessible directement de l'exterieur
  6.  
  7.  
  8. }
  9. //dnas ton code :
  10. $bidule  = new Bidule();
  11. $bidule->test = 'ok';


Message édité par flo850 le 28-08-2010 à 15:03:42
n°2019650
Scarf3ss3
Posté le 29-08-2010 à 11:03:53  profilanswer
 

Code :
  1. class system
  2. {
  3. // DECLARATION DES PROPRIETES
  4. public $system;
  5. // $system->page       // Toutes les infos concernant la page en cours
  6. // $system->html       // Contient toutes les balises html
  7. // $system->bdd        // Travail avec la base de données
  8. // $system->user       // Toutes les infos de l'utilisateur
  9. public $id_page;       // La page appelée à l'origine
  10. public $erreur_fatale; // Si à True, l'utilisateur est redirigé vers une page simple, lui indiquant une erreur.
  11. public $langue;        // Langue de la page en cours
  12. // CONSTRUCTEUR
  13. public function __construct ()
  14. {
  15.  // INCLUSION DES FICHIERS
  16.  require_once ('config.conf.php');                 // Fichier config
  17.  require_once (DOSSIER_OUTILS.'fonctions.inc.php');// Ensemble de fonctions utiles
  18.  require_once (DOSSIER_OUTILS.'bdd.class.php');    // Class de la base de données
  19.  // INITIALISATION DES VARIABLES
  20.  $this->erreur_fatale = false;
  21.  $this->system->bdd = new bdd();
  22. }
  23. }


 
Voilà le bout de code sur lequel j'étais en train de bosser.
A l'appel de cette class, j'ai donc cette erreur sur: $this->system->bdd = new bdd(); Car $this->system est vide, et ça je ne trouve pas le moyen de le contourner.


Message édité par Scarf3ss3 le 29-08-2010 à 11:04:45
n°2019694
flo850
moi je
Posté le 29-08-2010 à 19:22:05  profilanswer
 

mais system est de quel classe ?
tu ne devrai pas faire
$this->system = new System();

 

au passage, fait tes inclusion au debut de ton fichier, là , elles sont faite a chaque instantiation d'un objet

 


edit : Attends, ta class system contient un membre appelé system ?
pourquoi ne pas directement avoir les membres bdd, page, html et user ?

Message cité 1 fois
Message édité par flo850 le 29-08-2010 à 19:23:09
n°2020074
Scarf3ss3
Posté le 31-08-2010 à 14:09:49  profilanswer
 

flo850 a écrit :


edit : Attends, ta class system contient un membre appelé system ?  
pourquoi ne pas directement avoir les membres bdd, page, html et user ?


 
Oui $system est une propriété de la class system. J'aurai pu l'appeler $toto ou $tata.
Le but de la manip est de mettre tout dans la variable $system pour faire passer tout le nécessaire de class en class en une seule variable.
 
Donc je cherche comment remédier ou plutôt déclarer ma variable $system afin que je lui attribue les différents objets.
 
Il n'y a pas de problèmes de fonctionnements, si ce n'est que j'ai ce NOTICE que j'aimerai bien comprendre pour le régler

Message cité 1 fois
Message édité par Scarf3ss3 le 31-08-2010 à 14:12:18
n°2020218
Tirkyth
Posté le 31-08-2010 à 18:33:55  profilanswer
 

Code :
  1. // INITIALISATION DES VARIABLES
  2. $this->erreur_fatale = false;
  3. $this->system = new stdClass();
  4. $this->system->bdd = new bdd();


(J'ai pas testé, flemme, c'est juste une idée ^^)

n°2020251
flo850
moi je
Posté le 31-08-2010 à 20:54:04  profilanswer
 

Scarf3ss3 a écrit :


 
Oui $system est une propriété de la class system. J'aurai pu l'appeler $toto ou $tata.
Le but de la manip est de mettre tout dans la variable $system pour faire passer tout le nécessaire de class en class en une seule variable.
 
Donc je cherche comment remédier ou plutôt déclarer ma variable $system afin que je lui attribue les différents objets.
 
Il n'y a pas de problèmes de fonctionnements, si ce n'est que j'ai ce NOTICE que j'aimerai bien comprendre pour le régler


crée une classe" system" avec les bons membres
ce sera beaucoup plus propre

n°2021286
CyberDenix
Posté le 05-09-2010 à 21:43:39  profilanswer
 

C'est clair que les require_once dans le constructeur, ça pue du boudin !


---------------
Directeur Technique (CTO)
n°2021298
esox_ch
Posté le 05-09-2010 à 23:21:27  profilanswer
 

flo850 a écrit :


crée une classe" system" avec les bons membres
ce sera beaucoup plus propre


 
+1!
Et penser que PHP laisse faire autrement  :sarcastic:  
Donc soit tu te fais une classe System qu'après tu construits (propre et objet), soit tu te gères système comme un tableau associatif, mais de grâce, pas un mix des 2!


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  PHP 5.3.3 déclaration d'un objet

 

Sujets relatifs
[emploi] Recherche développeur PHP/HTML/JS disponible immédiatementenregistrer objet
Tri d'objet pointé dans un tableauServeur. Code PHP Ne Se Lance Pas. Le Propio A Bridé le PHP
Erreur d'exécution Microsoft VBScript: Cet objet ne gère pas cette proacceder à une propriété d'un objet par l'intermédiaire d'un string
PHP.INI SMTP sslUne erreur sur mon code PHP ?
lancer Povray depuis PHPinclude ne fonctionne pas PHP
Plus de sujets relatifs à : PHP 5.3.3 déclaration d'un objet


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR