php魔术方法功能与用法实例分析


Posted in PHP onOctober 19, 2016

本文实例讲述了php魔术方法功能与用法。分享给大家供大家参考,具体如下:

<?php
//php中的魔术方法
header('content-type:text/html;charset=utf-8');
class Person{
 public $name;
 protected $sex;
 private $salary;
 //构造方法,实例化对象是自动触发的方法
 public function __construct($name,$sex,$salary){
  $this->name=$name;
  $this->sex=$sex;
  $this->salary=$salary;
 }
 //魔术常量__CLASS__
 public function getClassName(){
  echo __CLASS__;
 }
 // __FUNCTION__
 public function getMethod(){
  echo __FUNCTION__;
 }
 //__tostring()
  public function __tostring(){
   return '对象必须用var_dump()'.'姓名是'.$this->name;
  }
 //__clone() 在使用clone方法的时候会自动调用
  public function __clone(){
   echo '这个对象是被克隆出来的';
   $this->name='李四';
  }
  //__get() 当调用一个不存在或权限不够的属性自动触发的方法
  public function __get($a){
   echo $a.'属性不存在或权限不够';
  }
  //__set() 当设置一个不存在或权限不够的属性时自动触发的方法
  public function __set($name,$value){
   echo $name.'为'.$value;
  }
  //__isset() 当在类外判断一个不存在或权限不够的属性时自动触发的方法
  public function __isset($name){
   echo $name.'不能为空';
  }
  //__call() 当去访问一个权限不够或者不存在的方法的时候,会自动触发的魔术方法
  public function __call($method,$a){
   echo '您请求的方法'.$method.'不存在';
   $this->getname();
  }
  public function getname(){
  echo $this->name;
  }
}
//实例化对象
$person=new Person('张三','男',12223);
$person1=new Person('张三','男',12223);
//$person2=new Person('李四','女',11111);
var_dump($person);
var_dump($person1);
exit;
$person->getClassName();
$person->getMethod();
//echo $person->name;
//echo $person;
$person1=$person; //同一个对象
//var_dump($person);
//var_dump($person1);
$person2=clone $person; //克隆会产生不一样的对象
//var_dump($person);
//var_dump($person2);
//echo $person2->name;
//$person->salary=10000;
//var_dump(isset($person->salary));
//$person->getName();

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
php mysql索引问题
Jun 07 PHP
PHP脚本中include文件出错解决方法
Nov 20 PHP
在smarty模板中使用PHP函数的方法
Apr 23 PHP
关于PHP中Object对象的笔记分享
Jun 28 PHP
PHP加密扩展库Mcrypt安装和实例
Nov 10 PHP
php实现执行某一操作时弹出确认、取消对话框
Dec 30 PHP
php环境套包 dedeampz 伪静态设置示例
Mar 26 PHP
ThinkPHP CURD方法之where方法详解
Jun 18 PHP
PHP Session机制简介及用法
Aug 19 PHP
PHP根据session与cookie用户登录状态操作类的代码
May 13 PHP
php 将json格式数据转换成数组的方法
Aug 21 PHP
PHP7修改的函数
Mar 09 PHP
php封装的smartyBC类完整实例
Oct 19 #PHP
php封装的smarty类完整实例
Oct 19 #PHP
PHP内存缓存功能memcached示例
Oct 19 #PHP
PHP实现上传图片到 zimg 服务器
Oct 19 #PHP
php通过会话控制实现身份验证实例
Oct 18 #PHP
利用php_imagick实现复古效果的方法
Oct 18 #PHP
php封装的page分页类完整实例
Oct 18 #PHP
You might like
php标签云的实现代码
2012/10/10 PHP
PHP中curl_setopt函数用法实例分析
2015/04/16 PHP
thinkPHP5框架设置404、403等http状态页面的方法
2018/06/05 PHP
PHP获取访问设备信息的方法示例
2019/02/20 PHP
JQuery 获得绝对,相对位置的坐标方法
2010/02/09 Javascript
鼠标放在图片上显示大图的JS代码
2013/03/26 Javascript
javascript修改IMG标签的src问题
2014/03/28 Javascript
JavaScript实现重置表单(reset)的方法
2015/04/02 Javascript
jquery实现鼠标滑过后动态图片提示效果实例
2015/08/10 Javascript
一道JS前端闭包面试题解析
2015/12/25 Javascript
JavaScript实现弹出模态窗体并接受传值的方法
2016/02/12 Javascript
bootstrap datetimepicker2.3.11时间插件使用
2016/11/19 Javascript
详解angularjs中的隔离作用域理解以及绑定策略
2017/05/31 Javascript
vue路由跳转时判断用户是否登录功能的实现
2017/10/26 Javascript
JS实现获取进今年第几天是周几的方法分析
2018/06/27 Javascript
通过jquery的ajax请求本地的json文件方法
2018/08/08 jQuery
javascript中floor使用方法总结
2019/02/02 Javascript
Layui Form 自定义验证的实例代码
2019/09/14 Javascript
使用p5.js实现动态GIF图片临摹重现
2019/10/23 Javascript
[03:52]显微镜下的DOTA2第三期——英雄在无聊的时候干什么
2014/06/20 DOTA
python模拟登录百度贴吧(百度贴吧登录)实例
2013/12/18 Python
Python中的Classes和Metaclasses详解
2015/04/02 Python
python3利用Dlib19.7实现人脸68个特征点标定
2018/02/26 Python
Python numpy实现二维数组和一维数组拼接的方法
2018/06/05 Python
Python获取一个用户名的组ID过程解析
2019/09/03 Python
从一次项目重构说起CSS3自定义变量在项目的使用方法
2021/03/01 HTML / CSS
无谷物狗粮:Pooch & Mutt
2018/05/23 全球购物
Booking.com缤客中国:全球酒店在线预订网站
2020/05/03 全球购物
计算s=f(f(-1.4))的值
2014/05/06 面试题
五年级小学生评语
2014/12/26 职场文书
监理中标通知书
2015/04/16 职场文书
2015年暑期社会实践总结
2015/07/13 职场文书
你离财务总监还有多远?速览CFO的岗位职责
2019/11/18 职场文书
Django migrate报错的解决方案
2021/05/20 Python
【海涛DOTA解说】EVE女子战队独家录像加ZSMJ神牛两连发
2022/04/01 DOTA
JS前端canvas交互实现拖拽旋转及缩放示例
2022/08/05 Javascript