教程集 www.jiaochengji.com
教程集 >  脚本编程  >  php  >  正文 php类的魔术方法

php类的魔术方法

发布时间:2016-10-27   编辑:jiaochengji.com
教程集为您提供php类的魔术方法等资源,欢迎您收藏本站,我们将为您提供最新的php类的魔术方法资源
在php 5中,提供了构造函数,析构函数,对象克隆的方法,重载方法等,

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><?php
class 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面相对象的魔术方法中文说明与例子

[关闭]
~ ~