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读注册表
Oct 09 PHP
php利用cookie实现访问次数统计代码
May 19 PHP
php 错误处理经验分享
Oct 11 PHP
PHP简洁函数(PHP简单明了函数语法)
Jun 10 PHP
PHP strstr 函数判断字符串是否否存在的实例代码
Sep 28 PHP
PHP mail()函数使用及配置方法
Jan 14 PHP
ThinkPHP的MVC开发机制实例解析
Aug 23 PHP
php使用fgetcsv读取csv文件出现乱码的解决方法
Nov 08 PHP
在WordPress的文章编辑器中设置默认内容的方法
Dec 29 PHP
深入理解PHP类的自动载入机制
Sep 16 PHP
PHP实现统计在线人数功能示例
Oct 15 PHP
php5.6.x到php7.0.x特性小结
Aug 17 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加MYSQL服务器
2006/10/09 PHP
默默简单的写了一个模板引擎
2007/01/02 PHP
php 搜索框提示(自动完成)实例代码
2012/02/05 PHP
ini_set的用法介绍
2014/01/07 PHP
destoon设置自定义搜索的方法
2014/06/21 PHP
PHP中strtr字符串替换用法详解
2014/11/26 PHP
PHP文件操作实例总结
2016/09/27 PHP
自动完成JS类(纯JS, Ajax模式)
2009/03/12 Javascript
原生javascript实现的一个简单动画效果
2016/03/30 Javascript
详解Vue的钩子函数(路由导航守卫、keep-alive、生命周期钩子)
2018/07/24 Javascript
详解Vue iview IE浏览器不兼容报错(Iview Bable polyfill)
2019/01/07 Javascript
jQuery实现弹幕特效
2019/11/29 jQuery
微信小程序自定义弹出层效果
2020/05/26 Javascript
Vue实现简单的留言板
2020/10/23 Javascript
Javascript执行上下文顺序的深入讲解
2020/11/04 Javascript
vue+openlayers绘制省市边界线
2020/12/24 Vue.js
MySQLdb ImportError: libmysqlclient.so.18解决方法
2014/08/21 Python
Python构建网页爬虫原理分析
2017/12/19 Python
NumPy 如何生成多维数组的方法
2018/02/05 Python
浅谈pandas筛选出表中满足另一个表所有条件的数据方法
2019/02/08 Python
Python中psutil的介绍与用法
2019/05/02 Python
Django获取该数据的上一条和下一条方法
2019/08/12 Python
Python实现线性判别分析(LDA)的MATLAB方式
2019/12/09 Python
使用pandas 将DataFrame转化成dict
2019/12/10 Python
keras获得某一层或者某层权重的输出实例
2020/01/24 Python
python3使用Pillow、tesseract-ocr与pytesseract模块的图片识别的方法
2020/02/26 Python
Python 操作 PostgreSQL 数据库示例【连接、增删改查等】
2020/04/21 Python
Hotels.com加拿大:领先的在线住宿网站
2018/10/05 全球购物
销售人员自我评价
2014/02/01 职场文书
物流管理专业求职信
2014/05/29 职场文书
公司周年庆活动方案
2014/08/25 职场文书
医院科室评语
2015/01/04 职场文书
同学聚会邀请函
2015/01/30 职场文书
女儿满月酒致辞
2015/07/29 职场文书
小学体育课教学反思
2016/02/16 职场文书
Redis实现订单自动过期功能的示例代码
2021/05/08 Redis