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 相关文章推荐
建立文件交换功能的脚本(一)
Oct 09 PHP
抓取YAHOO股票报价的类
May 15 PHP
PHP中实现生成静态文件的方法缓解服务器压力
Jan 07 PHP
PHP定时任务延缓执行的实现
Oct 08 PHP
php中get_defined_constants函数用法实例分析
May 12 PHP
详解Grunt插件之LiveReload实现页面自动刷新(两种方案)
Jul 31 PHP
详解PHP中的状态模式编程
Aug 11 PHP
php实现可运算的验证码
Nov 10 PHP
PHP编写RESTful接口
Feb 23 PHP
支持汉转拼和拼音分词的PHP中文工具类ChineseUtil
Feb 23 PHP
php接口隔离原则实例分析
Nov 11 PHP
PHP实现两种排课方式
Jun 26 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实现兼容2038年后Unix时间戳转换函数
2015/03/18 PHP
tp5 实现列表数据根据状态排序
2019/10/18 PHP
js FLASH幻灯片字符串中有连接符&的处理方法
2012/03/01 Javascript
获取服务器传来的数据 用JS去空格的正则表达式
2012/03/26 Javascript
实例讲解jquery与json的结合
2016/01/07 Javascript
ajax跨域调用webservice的实现代码
2016/05/09 Javascript
Bootstrap3 input输入框插入glyphicon图标的方法
2016/05/16 Javascript
JS实现简单的右下角弹出提示窗口完整实例
2016/06/21 Javascript
js倒计时显示实例
2016/12/11 Javascript
Bootstrap模态框插件使用详解
2017/05/11 Javascript
JavaScript实现的搜索及高亮显示功能示例
2017/08/14 Javascript
浅谈Angular路由守卫
2017/08/26 Javascript
javaScript动态添加Li元素的实例
2018/02/24 Javascript
JS常用的几种数组遍历方式以及性能分析对比实例详解
2018/04/11 Javascript
VuePress 快速踩坑小结
2019/02/14 Javascript
python集合类型用法分析
2015/04/08 Python
快速实现基于Python的微信聊天机器人示例代码
2017/03/03 Python
Django Rest framework权限的详细用法
2019/07/25 Python
关于Python错误重试方法总结
2021/01/03 Python
python 制作网站小说下载器
2021/02/20 Python
基于HTML5 audio元素播放声音jQuery小插件
2011/05/11 HTML / CSS
使用jTopo给Html5 Canva中绘制的元素添加鼠标事件
2014/05/15 HTML / CSS
将一个文本文件的内容按倒序打印出来
2015/01/05 面试题
2019年分享net面试的经历和题目
2016/08/07 面试题
Boolean b = new Boolean(“abcde”); 会编译错误码
2013/11/27 面试题
高中自我评价范文
2014/01/27 职场文书
《太阳》教学反思
2014/02/21 职场文书
体育之星事迹材料
2014/05/11 职场文书
企业职业病防治方案
2014/05/29 职场文书
八荣八耻的活动方案
2014/08/16 职场文书
党的群众路线对照检查材料(个人)
2014/09/24 职场文书
反四风个人对照检查材料思想汇报
2014/09/25 职场文书
四风查摆剖析材料
2014/10/10 职场文书
预备党员转正材料
2014/12/19 职场文书
老干部座谈会主持词
2015/07/03 职场文书
html实现弹窗的实例
2021/06/09 HTML / CSS