On Mon, 26 Nov 2001, Greg Sidelinger wrote:
> Can someone tell me how to store a class in a session var. I want to
There are several things you need to do.
1) include the class definition before you do anything
2) start the session shortly thereafter
3) register a session variable
4) create your object
5) serialize your object
6) store the serialized object (now a string) in your registered session
variable
Then to use the object again, you just have to
7) start the session back up
8) get the serialized value of your object from the registered session
variable
9) unserialize the string value back into an object
Wanna see how this works? I have a trivial example below, which involves
3 files.
- chair.class is my class definition.
- chair1.php sets up the session, creates the object, serializes and
stores it in a registered session variable.
- chair2.php gets the session variable's value, unserializes it, and uses
the object again.
-- chair.class
<?php
class chair{
// DATA MEMBERS
var $num_legs;
var $num_arms;
// CONSTRUCTOR
function chair( $legs = 3, $arms = 0 ){
$this->num_legs = $legs;
$this->num_arms = $arms;
}
// SETTERS
function setLegs( $legs ){
$this->num_legs = $legs;
return true;
}
function setArms( $arms ){
$this->num_arms = $arms;
return true;
}
// GETTERS
function getLegs( ){
return $this->num_legs;
}
function getArms( ){
return $this->num_arms;
}
}
?>
-- chair1.php
<?php
include( "chair.class" );
session_start();
$myChair = new chair( 5, 3 );
print( "My chair has " . $myChair->getLegs() . " legs, and " .
$myChair->getArms() . " arms." );
$serChair = serialize( $myChair );
session_register( "aChair" );
$aChair = $serChair;
?>
-- chair2.php
<?php
include( "chair.class" );
session_start();
$myChair = unserialize( $aChair );
print( "My chair has " . $myChair->getLegs() . " legs, and " .
$myChair->getArms() . " arms." );
?>
g.luck,
~Chris /"\
\ / September 11, 2001
X We Are All New Yorkers
/ \ rm -rf /bin/laden
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]