搜索
首页php教程php手册PHP面向对象开发之魔术函数详解

PHP面向对象开发之魔术函数详解

Jun 13, 2016 am 09:52 AM
phptostring函数对象详解面向魔术

php中魔术函数包括有tostring、call、clone、autoload几个常用的函数,希望此教程对各位朋友会有所帮助。

面向对象开发总结

1.对象的描述和配置。(可以理解为对对象的输出文字描述)
2.对象方法的一场处理。(可以理解为出现异常时候,自定义更人性化的错误信息)
3.克隆对象的应用。(可以理解为在原始对象上,克隆出一样的另一个对象,注意是另一个。)
4.自动载入对象的方法。(可以理解为引用)

1.对象描述和配置

方法名:__tostring()
格式:

 代码如下 复制代码
class My {
function __tostring() {
return "这里写这个类的文字描述"; //要用return,echo会出错。
}
}
$p = new My();
echo $p;

实例:

 代码如下 复制代码
class My {
 function __toString() {
  return "这个类的作用是,保卫地球。";
 }
}
$p = new My();
echo $p;
?>

2.对象方法的异常处理

调用一些不存在的对象方法的异常处理,是程序正常运行。
方法名:__call($funname,$arr_value)
格式:

 代码如下 复制代码
class My {
function __call($n,$v) {
echo "错误的方法名:".$n;
echo "错误的参数:".$v;
}
}

实例:

 代码如下 复制代码

class My {
 function __toString() {
  return "这个类的作用是,保卫地球。";
 }

 function __call ($n,$v) {
  echo "错误的方法".$n."
";
    echo "错误的值".print_r($v).""; //值是以数组方式传递的,所以要用print_r。
 }
}
$p = new My();
$p->demo("第一",6);
?>

3.对象的克隆

通过克隆方式可以在内存中生成两个一样的对象或升级原对象。(不是简单的赋值,而是在内存中开两块内存,克隆出的和被克隆的是2个属性方法一样的不同的两个对象)
方法名:__clone()
关键字:clone
格式:

 代码如下 复制代码
class My {
function __clone() {
echo "克隆时自动调用的函数";
}
}
$a = new My();
$b = clone $a;


实例:

 代码如下 复制代码

class My {
 public $name = "小猪";
 function __toString() {
  return "这个类的作用是,保卫地球。";
 }

 function __call ($n,$v) {
  echo "错误的方法".$n."
";
    echo "错误的值".print_r($v).""; //值是以数组方式传递的,所以要用print_r。
 }
}
$p = new My();
$b = clone $p;

echo $b->name="小猪头"."
"; //这是克隆并修改后的对象,如果使用 $b = $p,那修改$b->name="小猪头";后,再输出$p,也会被修改。
echo $p->name; //这是原对象,它已经被$b克隆了,其他都一样,但是他们是独立的。
?>


4.自动载入对象的方法


快速取得对象名称并自动载入进当前页面
方法名:__autoload()
格式:

 代码如下 复制代码
function __autoload($class_n) {
include($class_n.".php");
}
$p = new MyPc(); //自动调用执行如下
$d = new demo(); //include("mypc.php")

实例:

 代码如下 复制代码

function __aotoload ($class_name) {
 include($class_name.".php"); //写在类外部。
}

$p = new class_name(); //这里实例化的类名就被上面的函数变量 $class_name 替代了,非常方便。
?>

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

安全考试浏览器

安全考试浏览器

Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能