Re: Fwd: Re: Class variable value lost

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Sumit Sharma wrote:
> What I have done is declared one User class in a separate file and created
> its object there only. After this included this file in all other file which
> are using its object. So the object is creating only once and included in
> every other file only once. Now when I over write its variable it value get
> lost when I send the user in other file.
> 
> The confusion is if I have created only one object of a class and used the
> same object through out the site how its value can get lost and I think this
> is a separate issue than setting $_SESSION variables.
> 

This is roughly how it works:

<?php
//user.php

$user = new User();

class User {
	//some stuff
}

?>

<?php
//file a.php

//NEW $user object is created
include('user.php');

//do some stuff

//$user is DESTROYED, end of script
?>

<?php
//file b.php

//NEW $user object is created
include('user.php');

//do some stuff

//$user is DESTROYED, end of script
?>


If you want to keep the first $user object and persist it across pages,
then you can many different things, but you need to put it in the
session.  One example (you could also write a session class to take care
of all of your session stuff):

<?php
//user.php

class User {
	//some stuff
}

?>

<?php
//file a.php

include('user.php');

session_start();

if(isset($_SESSION['user'])) {
	$user = unserialize($_SESSION['user']);
} else {
	$user = new User();
}

//do some stuff

//save $user to session
$_SESSION['user'] = serialize($user);

//$user is DESTROYED, end of script, but $_SESSION['user'] persists
?>

<?php
//file b.php

include('user.php');

session_start();

if(isset($_SESSION['user'])) {
	$user = unserialize($_SESSION['user']);
} else {
	$user = new User();
}

//do some stuff

//save $user to session
$_SESSION['user'] = serialize($user);

//$user is DESTROYED, end of script, but $_SESSION['user'] persists
?>

-- 
Thanks!
-Shawn
http://www.spidean.com

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux