這裡主要講到關於在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);
?>