Php: serialization or session object for oo to the end

Source: Internet
Author: User
Tags php definition
Php: use serialization or session object to make oo php support object-oriented programming. This allows us to use classes and objects as much as possible during programming to simplify our program, reduces the workload of code maintenance. however, because the variables are released after the script is executed, the objects generated on this page may be in trouble when they are used on other pages. however, in many cases, some tasks are php: serialization or session object is used to make oo to the end.


Php supports object-oriented programming, which allows us to use classes and objects to simplify programming.

Our programs reduce the workload of code maintenance.

However, because the variables are released after the script is executed, the objects generated on this page want to be used on other pages.

However, in many cases, some tasks cannot be completed on one or two pages.

It is not a good idea to pass the object and its method to the page where we want to use the object.

Although the get or post hide method is used to pass object variables, a new object is created on the new page, and then

It seems that the new object can be initialized using constructors, but it is very troublesome. you can imagine it.

After a long attempt, we will summarize two methods to pass objects.

One, serialization (php4 features). With this feature, we can serialize the object, and then we need

To use the object variable deserialization.

Example:

// ********* Class. php definition class *********
Class
{
Var $;
Var $ B;
Var $ c;
Function a ($ x, $ y)
{
$ This-> a = $ x;
$ This-> B = $ y;
$ This-> give_var_value ();
}

Function give_var_value ()
{
For ($ I = 0; I I <100; $ I ++)
{
$ This-> c [$ I] = $ I;
}
}

Function show_var_value ()
{
Echo $ this-> a. $ this-> B ."
";
For ($ I = 0; I I <100; $ I ++)
{
Echo "c [$ I] =". $ this-> c [$ I]."
";
}

}

}

?>

// ************** A. php creates an object and serializes it **************

Require_once ("class. php ");

$ A = new a ("hello,", "world! ");

$ S = serialize ($ a); // serialize object

$ Fp = fopen ("store", "w"); // open a file in the "w" mode and obtain the File Handle. pay attention to the directory attributes here.

Fputs ($ fp, $ s); // write a file

Fclose ($ fp); // close the file handle

?>

// ************** B. php deserializes the object and calls its method **************


Require_once ("class. php"); // The require class. php file is required because the serialization object cannot serialize its method.

$ S = implode ("", @ file ("store "));

$ A = unserialize ($ s );

$ A-> show_var_value ();

?>



The above example is successfully debugged on the win2k server apache2.0.36 php4.2.1


Serialization can only be used when users are limited. because you need to create a file for each user, you need to create directory permissions and ensure that the file name cannot be repeated. the user cannot exit normally.

In the case of a browser, the file cannot be deleted, so this method is more convenient for background management.


When there are a large number of users, we can use sessions to save objects. because session files are managed by the system, we do not have to create a file,

The deletion and directory permissions are troublesome. example:

// ******************* A1.php registers the object as the session variable ************ ****


Require_once ("class. php ");

Session_start ();

$ _ SESSION ["a"] = new a ("hello,", "world! ");

?>

// ******************* B1.php use session variable *************** *


Require_once ("class. php"); // similarly, when the registered object is a session variable, the method cannot be saved. Therefore, the require class. php file is required.

Session_start ();

$ _ SESSION ["a"]-> show_var_value ();

?>

The above example is successfully debugged in win98se apache2.0.36 php4.2.1


Appendix: now we will serialize the object and paste the file registered as the session variable as follows. I hope someone can analyze it for your reference.

Serialized file:

O: 1: "a": 3: {s: 1: "a"; s: 6: "hello,"; s: 1: "B"; s: 6: "world! "; S: 1:" c "; a: 100: {I: 0; I: 0; I: 1; I: 1; I: 2; I: 2;
I: 3; I: 3; I: 4; I: 4; I: 5; I: 5; I: 6; I: 7; I: 7; i: 8; I: 8; I: 9; I: 9; I: 10; I: 10; I: 11; I: 11; I: 12; I: 12; i: 13; I
: 13; I: 14; I: 14; I: 15; I: 15; I: 16; I: 16; I: 17; I: 17; I: 18; i: 18; I: 19; I: 19; I: 20; I: 20; I: 21; I: 21; I: 22; I: 2
2; I: 23; I: 23; I: 24; I: 24; I: 25; I: 25; I: 26; I: 26; I: 27; I: 27; I: 28; I: 28; I: 29; I: 29; I: 30; I: 30; I: 31; I: 31;
I: 32; I: 32; I: 33; I: 33; I: 34; I: 34; I: 35; I: 35; I: 36; I: 36; i: 37; I: 37; I: 38; I: 38; I: 39; I: 39; I: 40; I: 40; I:
41; I: 41; I: 42; I: 42; I: 43; I: 43; I: 44; I: 44; I: 45; I: 45; I: 46; I: 46; I: 47; I: 47; I: 48; I: 48; I: 49; I: 49; I: 50
; I: 50; I: 51; I: 51; I: 52; I: 52; I: 53; I: 53; I: 54; I: 54; I: 55; I: 55; I: 56; I: 56; I: 57; I: 57; I: 58; I: 58; I: 59; I
: 59; I: 60; I: 60; I: 61; I: 61; I: 62; I: 62; I: 63; I: 63; I: 64; i: 64; I: 65; I: 65; I: 66; I: 66; I: 67; I: 67; I: 68; I: 6
8; I: 69; I: 69; I: 70; I: 70; I: 71; I: 71; I: 72; I: 73; I: 73; I: 74; I: 74; I: 75; I: 75; I: 76; I: 76; I: 77; I: 77;
I: 78; I: 78; I: 79; I: 79; I: 80; I: 80; I: 81; I: 81; I: 82; I: 82; i: 83; I: 83; I: 84; I: 84; I: 85; I: 85; I: 86; I: 86; I:
87; I: 87; I: 88; I: 88; I: 89; I: 89; I: 90; I: 90; I: 91; I: 91; I: 92; I: 92; I: 93; I: 93; I: 94; I: 94; I: 95; I: 95; I: 96
; I: 96; I: 97; I: 97; I: 98; I: 98; I: 99; I: 99 ;}}

Session file:

A | O: 1: "a": 3: {s: 1: "a"; s: 6: "hello,"; s: 1: "B"; s: 6: "world! & Quot; s: 1: & quot; c & quot; a: 100: {I: 0; I: 0; I: 1; I: 1; I: 2; I:
2; I: 3; I: 3; I: 4; I: 4; I: 5; I: 5; I: 6; I: 7; I: 7; I: 8; I: 8; I: 9; I: 9; I: 10; I: 10; I: 11; I: 11; I: 12; I: 12; I: 13
; I: 13; I: 14; I: 14; I: 15; I: 15; I: 16; I: 16; I: 17; I: 17; I: 18; I: 18; I: 19; I: 19; I: 20; I: 20; I: 21; I: 21; I: 22; I
: 22; I: 23; I: 23; I: 24; I: 24; I: 25; I: 25; I: 26; I: 26; I: 27; i: 27; I: 28; I: 28; I: 29; I: 29; I: 30; I: 30; I: 31; I: 3
1; I: 32; I: 32; I: 33; I: 33; I: 34; I: 34; I: 35; I: 35; I: 36; I: 36; I: 37; I: 37; I: 38; I: 38; I: 39; I: 39; I: 40; I: 40;
I: 41; I: 41; I: 42; I: 42; I: 43; I: 43; I: 44; I: 44; I: 45; I: 45; i: 46; I: 46; I: 47; I: 47; I: 48; I: 48; I: 49; I: 49; I:
50; I: 50; I: 51; I: 51; I: 52; I: 52; I: 53; I: 53; I: 54; I: 54; I: 55; I: 55; I: 56; I: 56; I: 57; I: 57; I: 58; I: 58; I: 59
; I: 59; I: 60; I: 60; I: 61; I: 61; I: 62; I: 62; I: 63; I: 63; I: 64; I: 64; I: 65; I: 65; I: 66; I: 66; I: 67; I: 67; I: 68; I
: 68; I: 69; I: 69; I: 70; I: 70; I: 71; I: 71; I: 72; I: 73; i: 73; I: 74; I: 74; I: 75; I: 75; I: 76; I: 76; I: 77; I: 7
7; I: 78; I: 78; I: 79; I: 79; I: 80; I: 80; I: 81; I: 81; I: 82; I: 82; I: 83; I: 83; I: 84; I: 84; I: 85; I: 85; I: 86; I: 86;
I: 87; I: 87; I: 88; I: 88; I: 89; I: 89; I: 90; I: 90; I: 91; I: 91; i: 92; I: 92; I: 93; I: 93; I: 94; I: 94; I: 95; I: 95; I:
96; I: 96; I: 97; I: 97; I: 98; I: 98; I: 99; I: 99 ;}}

Note: The above article without copyright protection, can be arbitrarily modified, spread. if you have any objection, please mailto: chensiping@sina.com.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.