php类的魔术方法
1、构造函数__construct
如果在类申明中__construct函数,将被当成一个构造函数并且在对象建立时被执行,但在php4中,构造函数的名称与类名相同就是构造函数哦,这一点有一些不同。
2、析构函数__destruct
如果在php类中申明了,在对象被销毁时调用__destruct函数
下面来看个实例
<table width="620" align="center" border="0" cellpadding="1" cellspacing="1" style="background:#FB7"> <tr> <td width="464" height="27" bgcolor="#FFE7CE"> 代码如下</td> <td width="109" align="center" bgcolor="#FFE7CE" style="cursor:pointer;" onclick="doCopy('copy5070')">复制代码</td> </tr> <tr> <td height="auto" colspan="2" valign="top" bgcolor="#FFFFFF" style="padding:10px;" class="copyclass" id=copy5070><?phpclass Session
{
public function __construct()
{
echo '构造函数执行';
}
public function __destruct()
{
echo '析构函数执行';
}
}
$Obj = new Session;
unset($Obj);//删除对象, __destruct()会被调用的
//输出
//构造函数执行
/析构函数执行
?>
上面在使用new创建对象时就执行了__construct,对象结束时就执行了__destruct()
3、__clone()克隆函数
<table width="620" align="center" border="0" cellpadding="1" cellspacing="1" style="background:#FB7"> <tr> <td width="464" height="27" bgcolor="#FFE7CE"> 代码如下</td> <td width="109" align="center" bgcolor="#FFE7CE" style="cursor:pointer;" onclick="doCopy('copy9850')">复制代码</td> </tr> <tr> <td height="auto" colspan="2" valign="top" bgcolor="#FFFFFF" style="padding:10px;" class="copyclass" id=copy9850><?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;
?>
4 现在来看关于重载函数__get ,__set,__call函数
<table width="620" align="center" border="0" cellpadding="1" cellspacing="1" style="background:#FB7"> <tr> <td width="464" height="27" bgcolor="#FFE7CE"> 代码如下</td> <td width="109" align="center" bgcolor="#FFE7CE" style="cursor:pointer;" onclick="doCopy('copy9044')">复制代码</td> </tr> <tr> <td height="auto" colspan="2" valign="top" bgcolor="#FFFFFF" style="padding:10px;" class="copyclass" id=copy9044><?php
class Session
{
protected function __call($func,$para)
{
echo '方法不存在:’func." ".'参数为:'." ";
print_r($para);
}
}
$s=new Session ();
echo $c->getNames('hello','you');
/*
输出:
方法不存在:getNames
参数为:
Array
(
[0] => hello
[1] => you
)
*/
?>
申明本站原创文章转载注明来源于www.jiaochengji.com
您可能感兴趣的文章:
php以__开头的方法是什么
PHP中魔术方法的使用举例
PHP的魔术方法与魔术常量
PHP之十六个魔术方法详解(总结)
光影魔术手给照片添加边框 光影魔术手照片边框添加教程
PHP 常用的魔术方法使用及作用汇总表
解析:php关闭魔术引号magic_quotes_gpc
php中的魔术方法一些学习笔记
了解PHP中的8个魔术常量
php面相对象的魔术方法中文说明与例子