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中global和$GLOBALS[]的分析之一
Feb 02 PHP
一个简洁的PHP可逆加密函数(分享)
Jun 06 PHP
PHP 读取大文件的X行到Y行内容的实现代码
Jun 24 PHP
php加速器eAccelerator的配置参数、API详解
May 05 PHP
php实现根据字符串生成对应数组的方法
Sep 22 PHP
PHP将session信息存储到数据库的类实例
Mar 04 PHP
实现WordPress主题侧边栏切换功能的PHP脚本详解
Dec 14 PHP
基于PHP实现短信验证码接口(容联运通讯)
Sep 06 PHP
PHP环境搭建(php+Apache+mysql)
Nov 14 PHP
PHP下载远程图片的几种方法总结
Apr 07 PHP
PHP 年月日的三级联动实例代码
May 24 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
破解图片防盗链的代码(asp/php)测试通过
2010/07/02 PHP
PHP获取当前所在目录位置的方法
2014/11/26 PHP
PHP数组操作――获取数组最后一个值的方法
2015/04/14 PHP
JS 日期验证正则附asp日期格式化函数
2009/09/11 Javascript
利用JQuery+EasyDrag 实现弹出可拖动的Div,同时向Div传值,然后返回Div选中的值
2009/10/24 Javascript
json数据的列循环示例
2013/09/06 Javascript
raphael.js绘制中国地图 地图绘制方法
2014/02/12 Javascript
改变隐藏的input中value值的方法
2014/03/19 Javascript
js获取指定日期周数以及星期几的小例子
2014/06/27 Javascript
初步使用bootstrap快速创建页面
2016/03/03 Javascript
jQuery获取select选中的option的value值实现方法
2016/08/29 Javascript
bootstrap 下拉多选框进行多选传值问题代码分析
2017/02/14 Javascript
JavaScript实现动态增删表格的方法
2017/03/09 Javascript
es6数值的扩展方法
2019/03/11 Javascript
浅谈VUE防抖与节流的最佳解决方案(函数式组件)
2019/05/22 Javascript
解决ant Design中this.props.form.validateFields未执行的问题
2020/10/27 Javascript
[02:57]DOTA2英雄基础教程 风行者
2014/01/16 DOTA
[51:26]VP vs VG 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
[04:05]TI9战队采访 - Natus Vincere
2019/08/22 DOTA
[00:49]完美世界DOTA2联赛10月28日开团时刻:随便打
2020/10/29 DOTA
Python读大数据txt
2016/03/28 Python
python动态加载包的方法小结
2016/04/18 Python
python+splinter实现12306网站刷票并自动购票流程
2018/09/25 Python
Python实现 版本号对比功能的实例代码
2019/04/18 Python
pandas计数 value_counts()的使用
2019/06/24 Python
详解利用OpenCV提取图像中的矩形区域(PPT屏幕等)
2019/07/01 Python
python虚拟环境完美部署教程
2019/08/06 Python
英国最大的体育&时尚零售公司:JD Sports
2017/12/13 全球购物
Expedia法国:全球最大在线旅游公司
2018/09/30 全球购物
linux面试相关问题
2013/04/28 面试题
PyQt 如何创建自定义QWidget
2021/03/24 Python
装饰公司活动策划方案
2014/08/23 职场文书
银行奉献演讲稿
2014/09/16 职场文书
2014年污水处理厂工作总结
2014/12/19 职场文书
python基于turtle绘制几何图形
2021/06/15 Python
Python 中的Sympy详细使用
2021/08/07 Python