1.对象描述的配置__tostring()
我们可以直接打印对象句柄,从而获得该方法的基本信息或其他内容
举例:
class My{
function __tostring(){
echo "需要显示的内容";
}
}
$cl1=new My();
echo $cl1;
如果没有__tostring()这个方法的话将什么都不显示,因为我们只是初始化了一个类,并没有调用类中的任何方法,但是有了__tostring()这个方法,将会自动打印“需要显示的内容”;
2.对象方法的异常处理 __call($funname,$arr_value)
调用一些不存在的对象时的异常处理,是程序能正常运行
举例:
class My{
function __call($n,$v)
{
echo"错误的方法名".$n
echo"错误的参数".$v
}}
这样就可以把出错的方法名和参数值打印出来了
3.克隆对象
关键字clone
举例:
class My{
funcition __clone()
{echo"克隆时自动调用的函数";
}}
$a=new My();
$b=$a;//内存中只有一个对象
$a=new My();
$b=clone $a;//内存中会有两个对象
4.自动载入对象的方法,省去的include的麻烦__autoload(),该方法是在类以外单独的方法,也就是我们所谓的构造函数
function __autoload($class_n)
{
include($class_n."php");
}
$p=new Mypc();
$b=new MyDemo();
这样在创建类的时候就不需要在include Mypc.php和includeMyDemo.php了
具体代码:
<?php
/*
* Created on 2012-2-12
*
* To change the template for this generated file go to
* Window - Preferences - PHPeclipse - PHP - Code Templates
*/
class my{
function __tostring(){
return "需要输出的内容";
}
function __call($n,$v){
echo "不存在的方法是".$n."<br>";
echo "错误的值是".print_r($v);
}
function __destruct(){
echo "<br>"."清理一个对象";
}
function __clone(){
echo "<br>"."这个方法可以对克隆出来对象进行操作";
}
}
$c=new my();
echo $c->demo('第一',6);//调用本来不存在的方法
echo $c;//这样可以通过__tostring()来显示内容
$a=new my();
$b=clone $a;//这样的话就会比不加clone多打印一句“清理一个对象”;
?>
关于__autoload的用法
__autoload($name){
include("$name.php");
}
然后就可以随便使用其他文件中的类了
$d=new b();
$c=new c();
不需要再 一一include()了;