加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

详细解析 PHP 对象编程中的魔力方法

发布时间:2023-11-14 16:32:21 所属栏目:PHP教程 来源:
导读:面向对象开发总结

1.对象的描述和配置。(可以理解为对对象的输出文字描述)

2.对象方法的一场处理。(可以理解为出现异常时候,自定义更人性化的错误信息)

3.克隆对象的应用。(可以理解为在原始对象上
面向对象开发总结
 
1.对象的描述和配置。(可以理解为对对象的输出文字描述)
 
2.对象方法的一场处理。(可以理解为出现异常时候,自定义更人性化的错误信息)
 
3.克隆对象的应用。(可以理解为在原始对象上,克隆出一样的另一个对象,注意是另一个。)
 
4.自动载入对象的方法。(可以理解为引用)
 
1.对象描述和配置
 
方法名:__tostring()
 
格式:
 
 代码如下
 
1 class My {
 
function __tostring() {
 
return "这里写这个类的文字描述"; //要用return,echo会出错。
 
}
 
}
 
$p = new My();
 
echo $p;
 
实例:
 
 代码如下
 
1
 
class My {
 
 function __toString() {
 
  return "这个类的作用是,保卫地球。";
 
 }
 
}
 
$p = new My();
 
echo $p;
 
?>
 
2.对象方法的异常处理
 
调用一些不存在的对象方法的异常处理,是程序正常运行。
 
方法名:__call($funname,$arr_value)
 
格式:
 
 代码如下
 
1 class My {
 
function __call($n,$v) {
 
echo "错误的方法名:".$n;
 
echo "错误的参数:".$v;
 
}
 
}
 
实例:
 
 代码如下
 
1
 
class My {
 
 function __toString() {
 
  return "这个类的作用是,保卫地球。";
 
 }
 
2  function __call ($n,$v) {
 
  echo "错误的方法".$n."
 
";
 
    echo "错误的值".print_r($v).""; //值是以数组方式传递的,所以要用print_r。
 
 }
 
}
 
$p = new My();
 
$p->demo("第一",6);
 
?>
 
3.对象的克隆
 
通过克隆方式可以在内存中生成两个一样的对象或升级原对象。(不是简单的赋值,而是在内存中开两块内存,克隆出的和被克隆的是2个属性方法一样的不同的两个对象)
 
方法名:__clone()
 
关键字:clone
 
格式:
 
 代码如下
 
1 class My {
 
function __clone() {
 
echo "克隆时自动调用的函数";
 
}
 
}
 
$a = new My();
 
$b = clone $a;
 
实例:
 
 代码如下
 
1
 
class My {
 
 public $name = "小猪";
 
 function __toString() {
 
  return "这个类的作用是,保卫地球。";
 
 }
 
2  function __call ($n,$v) {
 
  echo "错误的方法".$n."
 
";
 
    echo "错误的值".print_r($v).""; //值是以数组方式传递的,所以要用print_r。
 
 }
 
}
 
$p = new My();
 
$b = clone $p;
 
3 echo $b->name="小猪头"."
 
"; //这是克隆并修改后的对象,如果使用 $b = $p,那修改$b->name="小猪头";后,再输出$p,也会被修改。
 
echo $p->name; //这是原对象,它已经被$b克隆了,其他都一样,但是他们是独立的。
 
?>
 
4.自动载入对象的方法
 
 
快速取得对象名称并自动载入进当前页面
 
方法名:__autoload()
 
格式:
 
 代码如下
 
1 function __autoload($class_n) {
 
include($class_n.".php");
 
}
 
$p = new MyPc(); //自动调用执行如下
 
$d = new demo(); //include("mypc.php")
 
实例:
 
 代码如下
 
1
 
function __aotoload ($class_name) {
 
 include($class_name.".php"); //写在类外部。
 
}
 
2 $p = new class_name(); //这里实例化的类名就被上面的函数变量 $class_name 替代了,非常方便。
 
?>
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章