这里主要讲到关于在php教程类的调用,申请明,使用以前各种类的实例方法与操作过程,让你清楚的知道php类的construct destruct clone call wake sleep用法。
简单购物车类
<?php
class cart
{
var $items; // 购物车中的项目
// 把 $num 个 $artnr 放入车中
function add_item ($artnr, $num)
{
$this->items[$artnr] += $num;
}
// 把 $num 个 $artnr 从车中取出
function remove_item ($artnr, $num)
{
if ($this->items[$artnr] > $num) {
$this->items[$artnr] -= $num;
return true;
} else {
return false;
}
}
}
?>
类中带有构造函数
<?php
class session
{
public function __construct()
{
echo '构造函数执行';
}
public function __destruct()
{
echo '析构函数执行';
}
}
$obj = new session;
unset($obj);//删除对象, __destruct()会被调用的
//输出
//构造函数执行
/析构函数执行
?>
类的调用与clone
<?php
class session
{
public $age = 20;
public $sub = null;
public function __clone()
{
$this->sub=clone $this->sub;
}
}
class session 2
{
public $value=5;
}
$s = new session;
$s->sub=new session 2;
$s2 = clone $s;
$s->sub->$value =10;
echo $s2->sub->$value;
?>
类 call方法
<?php
class session
{
protected function __call($func,$para)
{
echo '方法不存在:’func."n".'参数为:'."n";
print_r($para);
}
}
$s=new session ();
echo $c->getnames('hello','you');
/*
输出:
方法不存在:getnames
参数为:
array
(
[0] => hello
[1] => you
)
*/
?>
类wake sleep
<?php
//定义一个session类
class session {
public $sessionvars;
public $id;
function session() {
$this->id = uniqid();
}
function _sleep() {
}
function _wake() {
$this->id = uniqid();
}
}
//建立一个对象
$s = new session;
$s-> sessionvars = "1.02";//串行化
$ss = serialize($s);
//unserialize it 反串行化 id被重新赋值
$s2 = unserialize($s);
// $s和$s2有不同的id
print_r($s);
print_r($s2);
?>