一个用session传递对象的典型例子,和用面向对象编程的朋友共同分享(转自CSDN)
session|编程|对象
首先,你的session要好使,PHP4.1以上的版本别忘了把php.ini中的register_globle=Off设成register_globle=On,还有就是session.cookie_path = /,注意这行不可以乱改,有的版本PHP改了这个设置session就不好使,这是PHP的一个BUG.
好了,我假设你的session已经没问题了,我对下面的例子作个说明:b.php和a.php各定义了一个类,其中a.php中的类a稍微复杂,因为它是由b.php中的类doc组成的,这叫类的组成关系.我举的例子大概是最简单的类组成关系的例子啦.
c.php中产生了一个类a的对象叫test,并把它注册成session变量,c.php还显示了一个超文本的表单界面,供你输入一个字串.点击按钮后,对象test被传递到d.php,在下面的程序中,我具体介绍了传递对象时要注意的事项.这个程序是可以实际运行的,它是我学习用session传递对象的一个小总结,大家可以回去试试看,祝大家愉快.
//a.php
include("b.php");//包含b.php是因为doc类的定义在b.php中,而类a中的doc属性是doc类的对象
/**
* Short description.
* 一个带有组成关系的类
* Detail description
* @author
* @version 1.0
* @copyright
* @access public
*/
class a
{
/**
* Description 这是一个简单变量作为类a的属性
* @var
* @since 1.0
* @access private
*/
var $docid;
/**
* Description 这是一个对象变量作为类a的属性
* @var
* @since 1.0
* @access private
*/
var $doc;
/**
* Short description.
* 构造函数
* Detail description
* @param none
* @global none
* @since 1.0
* @access private
* @return void
* @update date time
*/
function a()//类a的构造函数,它给自己的doc属性赋了初值
{
$adoc=new doc;
$this->doc=$adoc;
} // end func
/**
* Short description.
* 给docid赋值
* Detail description
* @param none
* @global none
* @since 1.0
* @access private
* @return void
* @update date time
*/
function getdocid()//这个函数给自己的docid属性赋了值
{
$this->docid=$this->doc->id;
} // end func
/**
* Short description.
* 这个函数极简单,就不解释啦
* Detail description
* @param none
* @global none
* @since 1.0
* @access private
* @return void
* @update date time
*/
function printdocid()//显示doc对象属性的id属性
{
echo "doc->id=".$this->doc->id."
";
} // end func
} // end class
?>
//b.php
/**
* Short description.
* 这是一个简单的类
* Detail description
* @author
* @version 1.0
* @copyright
* @access public
*/
class doc
{
/**
* Description 简单变量作为类doc的属性
* @var
* @since 1.0
* @access private
*/
var $id;
/**
* Short description.
* 这个函数显示一个录入界面
* Detail description
* @param none
* @global none
* @since 1.0
* @access private
* @return void
* @update date time
*/
function scr()
{
screen();
} // end func
/**
* Short description.
* 这个函数把上面录入的值入库
* Detail description
* @param none
* @global none
* @since 1.0
* @access private
* @return void
* @update date time
*/
function save($conn,$i)
{
$sql="INSERT INTO `test` (`id`, `name`) VALUES ('', '$i')";
$result=mysql_query($sql,$conn);
$this->id = mysql_insert_id($conn);
} // end func
} // end class
?>
//c.php
include("a.php");//要产生类a的对象须包含定义类a的文件(注意,a.php中不能有超文本,一个空格都不行,因为session_start前面有这样的要求;也不能包含带有超文本的文件,如果功能要求中必须包含超文本,请做成象下面screen.php那样的函数)
$test=new a();//产生一个类a的对象,取名test
session_start();
session_register('test');//把对象变量注册成session变量以便传递
include("screen.php");//这时再包含带有超文本的文件
$test->doc->scr();//调用界面显示
?>
//d.php
include("a.php");//要想用session接受前面传递的对象变量,必须在session_start()前包含定义该类的文件
session_start();
include("conn.php");//此文件中定义了下句用到的connect()函数的定义
$conn=connect();
echo "i=$i
";
$test->doc->save($conn,$i);//这个test对象是在c.php中建立,并通过session传递过来的,它是这段程序显示的目的所在, 请注意体会;test对象的属性和方法被session传递后,依然有效
$test->getdocid();
$test->printdocid();
?>
return

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

Kod Visual Studio, juga dikenali sebagai Kod VS, ialah editor kod sumber percuma — atau persekitaran pembangunan bersepadu (IDE) — tersedia untuk semua sistem pengendalian utama. Dengan koleksi sambungan yang besar untuk banyak bahasa pengaturcaraan, Kod VS boleh menjadi c

Jika anda seorang pembangun PHP yang berpengalaman, anda mungkin merasakan bahawa anda telah berada di sana dan telah melakukannya. Anda telah membangunkan sejumlah besar aplikasi, menyahpenyahpepijat berjuta-juta baris kod dan mengubah suai sekumpulan skrip untuk mencapai op

Tutorial ini menunjukkan cara memproses dokumen XML dengan cekap menggunakan PHP. XML (bahasa markup extensible) adalah bahasa markup berasaskan teks yang serba boleh yang direka untuk pembacaan manusia dan parsing mesin. Ia biasanya digunakan untuk penyimpanan data

JWT adalah standard terbuka berdasarkan JSON, yang digunakan untuk menghantar maklumat secara selamat antara pihak, terutamanya untuk pengesahan identiti dan pertukaran maklumat. 1. JWT terdiri daripada tiga bahagian: header, muatan dan tandatangan. 2. Prinsip kerja JWT termasuk tiga langkah: menjana JWT, mengesahkan JWT dan muatan parsing. 3. Apabila menggunakan JWT untuk pengesahan di PHP, JWT boleh dijana dan disahkan, dan peranan pengguna dan maklumat kebenaran boleh dimasukkan dalam penggunaan lanjutan. 4. Kesilapan umum termasuk kegagalan pengesahan tandatangan, tamat tempoh, dan muatan besar. Kemahiran penyahpepijatan termasuk menggunakan alat debugging dan pembalakan. 5. Pengoptimuman prestasi dan amalan terbaik termasuk menggunakan algoritma tandatangan yang sesuai, menetapkan tempoh kesahihan dengan munasabah,

Rentetan adalah urutan aksara, termasuk huruf, nombor, dan simbol. Tutorial ini akan mempelajari cara mengira bilangan vokal dalam rentetan yang diberikan dalam PHP menggunakan kaedah yang berbeza. Vokal dalam bahasa Inggeris adalah a, e, i, o, u, dan mereka boleh menjadi huruf besar atau huruf kecil. Apa itu vokal? Vokal adalah watak abjad yang mewakili sebutan tertentu. Terdapat lima vokal dalam bahasa Inggeris, termasuk huruf besar dan huruf kecil: a, e, i, o, u Contoh 1 Input: String = "TutorialSpoint" Output: 6 menjelaskan Vokal dalam rentetan "TutorialSpoint" adalah u, o, i, a, o, i. Terdapat 6 yuan sebanyak 6

Mengikat statik (statik: :) Melaksanakan pengikatan statik lewat (LSB) dalam PHP, yang membolehkan kelas panggilan dirujuk dalam konteks statik dan bukannya menentukan kelas. 1) Proses parsing dilakukan pada masa runtime, 2) Cari kelas panggilan dalam hubungan warisan, 3) ia boleh membawa overhead prestasi.

Apakah kaedah sihir PHP? Kaedah sihir PHP termasuk: 1. \ _ \ _ Membina, digunakan untuk memulakan objek; 2. \ _ \ _ Destruct, digunakan untuk membersihkan sumber; 3. \ _ \ _ Call, mengendalikan panggilan kaedah yang tidak wujud; 4. \ _ \ _ Mendapatkan, melaksanakan akses atribut dinamik; 5. \ _ \ _ Set, melaksanakan tetapan atribut dinamik. Kaedah ini secara automatik dipanggil dalam situasi tertentu, meningkatkan fleksibiliti dan kecekapan kod.
