Portée variable de classe
Bonsoir,
Un petit souci de portée de variables qui ont instanciées une classe telle que:
Code:
1 2 3 4 5
|
$Conn = new Connection($TBL_screen, $debug=true) ;
// =============================================================================================================================== //
require_once $_SERVER['DOCUMENT_ROOT'] . "/config/canevas.php";
// =============================================================================================================================== // |
Je n'ai pas eu le choix mais le site sur lequel je travaille est composé de 2 parties (en vraiment très gros....) les pages en HTML et un gestionnaire à qui ont peu faire appel pour bcp de tâches en PHP 5.3.2.
le $Conn , je peux le propager et l'utiliser dans mon code HTML presque partout mais il y a des cas que je ne peux identifier, raisons de ce mail.
Certes si $Conn est utilisé dans une procédure, PHP ne sait plus de quel type il appartient et donne des erreurs...
J'ai une cascade de
Code:
require_once fichier.php
qui font que le code est assez bien structuré et dans cette cascade si je place à un endroit
Code:
<?php $Conn ->do_something(&a,,&b) ?>
et bien cela ira !
Mais c'est comme si PHP à partir d'une certaine "profondeur" arrêtait son job !
Voici un cas ou cela ne fonctionne plus.. et ceci après 2 ou3 require_once:
Code:
1 2 3 4 5 6 7 8
|
<?php
require_once $_SERVER['DOCUMENT_ROOT'] . "/config/functions.php";
$dis_enable = "enable" ;
if ( isset( $_POST["infonmbr_send"] ))
{ $Conn->email->addrecipient("je......@gmail.com",$name='Esteban') ; |
j'ai le msg suivant dans mon log:
15-May-2010 18:09:33] PHP Fatal error: Call to a member function addrecipient() on a non-object in F:\WebSites\Je.......\doc\do_infonmbr.php on line 46
Pouvez-vous m'éclairer ? Ce serait sympa.....
Portée des variables dans du code HTML
email vient du constructeur de la classe connection que voici:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
class Connection extends Vector
{ private $debug, $message, $member, $logging, $email, $zip ;
function __construct($TBL_screen,$debug=false)
{ $this->debug = true ; // $debug ;
$this->TBL_screen = $TBL_screen ;
$this->__set(SCREEN , $this->TBL_screen["screen" ] ) ;
$this->__set(TITLE , $this->TBL_screen["title" ] ) ;
$this->__set(SUBTITLE , $this->TBL_screen["subtitle"] ) ;
$this->__set(FORM , $this->TBL_screen["form" ] ) ;
$this->__set(SUBMENU , $this->TBL_screen["submenu" ] ) ;
$this->__set(MUSTMBER , $this->TBL_screen["mustmber"] ) ;
$this->__set(KLIMSG , $this->TBL_screen["klimsg" ] ) ;
$this->member = new Member ($this->debug) ;
$this->message = new Message ($this->debug) ;
$this->logging = new Logging ($this->debug) ;
$this->zip = new Postcode ($this->debug) ;
$this->email = new Simplemail($this->debug) ; |
As-tu assez d'info pour l'instant....
Un big merci :)
Portée variable de classes
Juste, c'est devant mes yeux et je ne vois que la portée est PRIVATE !
Bien fait pour ma pomme :lol:
Encore Merci