[php] class vars blijven niet bestaan

Pagina: 1
Acties:

  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 10:08
Ik heb een class :) :
PHP:
1
<?class page{    var $version = "1.0";    var $name = "";    var $rev = "";    var $totalqueries = 0;    var $valid = 0;    var $lang = "";    var $theme = "";    var $diestring = "";?>

Daarin heb ik een functie:
PHP:
1
<?    function loadlang($language)    {        $this->lang = $language;    }?>

En nog een functie:
PHP:
1
<?    function do_die($code)    {        if(is_numeric($code) == 1)            $this->diestring = $this->lang['codes'][$code];        else            $this->diestring = $code;        die($this->diestring);    }?>

Zoals de slimme programmeur kan zien gebruikt de 2e functie een var die in de 1e functie wordt ingesteld. Als ik nu in de 1e functie een print_r($this->lang); doe krijg ik alles netjes te zien.

Doe ik dit ook in de 2e functie dan gaat het helemaal mis, en ik snap dus niet waarom. Maar misschien maak ik wel een stomme fout.

En zo roep ik de 2e functie aan:
$page->do_die(4);

Alles gaat dus op zich goed, krijg ook geen foutmeldingen, maar die var van de class is dus leeg :(

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

dat hoort te werken dus :)
beide functies bevinden zich in de class, en loadlang wordt uitgevoerd voor do_die() ?
kun je daartussen een $page->lang prin_tr'en>?

Klaar voor een nieuwe uitdaging.


Verwijderd

Of print_r($page) vlak voordat je ->do_die(4) doet..

  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 10:08
Nee dan krijg ik ook leeg.

  • Grum
  • Registratie: Juni 2001
  • Niet online
dit werkt fijn bij mij hoor :)

  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 10:08
Op zondag 17 maart 2002 21:46 schreef fladder het volgende:
Of print_r($page) vlak voordat je ->do_die(4) doet..
Dan is ie leeg. Als ik het probeer meteen in de 1e functie is die gewoon gevuld.

Ik heb zo'n idee dat ergens een grove fout zit ofzo.

  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 10:08
Als ik $this->lang gebruik, zou dat conflicten in andere classes met $lang kunnen geven :?

  • Grum
  • Registratie: Juni 2001
  • Niet online
dit werkt gewoon bij mij
PHP:
1
<?class page{   var $lang = '';    function loadlang($language)   {      $this->lang = $language;   }    function do_die($code)   {      print $this->lang['codes'][$code];   }} $page = new page();$page->loadlang(array('codes' => array('Error')));$page->do_die(0);?>

  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 10:08
ja lieve schatten, dit is nu niet meer zo relevant :*

  • Grum
  • Registratie: Juni 2001
  • Niet online
geen copy/non-ref probleem ? >:)

change alle functies waar je een object meegeeft wat je veranderd naar

bv:

function db_connect($db, &$page)

  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 10:08
Op zondag 17 maart 2002 22:00 schreef Grum het volgende:
geen copy/non-ref probleem ? >:)

change alle functies waar je een object meegeeft wat je veranderd naar

bv:

function db_connect($db, &$page)
<h1>HELD!</h1>


<font color=red>graag gedaan ddc ;)</font>
Pagina: 1