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
php类中private属性继承问题分析
Nov 01 PHP
Apache下禁止php文件被直接访问的解决方案
Apr 25 PHP
PHP实现邮件群发的源码
Jun 18 PHP
在PHP模板引擎smarty生成随机数的方法和math函数详解
Apr 24 PHP
thinkphp模板赋值与替换实例简述
Nov 24 PHP
php绘制一个扇形的方法
Jan 24 PHP
php通过smtp邮件验证登陆的方法
May 11 PHP
php获取客户端IP及URL的方法示例
Feb 03 PHP
详解使用php调用微信接口上传永久素材
Apr 11 PHP
thinkphp中的多表关联查询的实例详解
Oct 12 PHP
使用PHPUnit进行单元测试并生成代码覆盖率报告的方法
Mar 08 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/09/08 PHP
destoon数据库表说明汇总
2014/07/15 PHP
php中addslashes函数与sql防注入
2014/11/17 PHP
php读取文件内容到数组的方法
2015/03/16 PHP
实例详解PHP中html word 互转的方法
2016/01/28 PHP
20款超赞的jQuery插件 Web开发人员必备
2011/02/26 Javascript
IE6、IE7中获取Button元素的值的bug说明
2011/08/28 Javascript
CSS+jQuery实现的一个放大缩小动画效果
2013/09/24 Javascript
深入理解JavaScript系列(35):设计模式之迭代器模式详解
2015/03/03 Javascript
js实现透明度渐变效果的方法
2015/04/10 Javascript
在javascript中随机数 math random如何生成指定范围数值的随机数
2015/10/21 Javascript
谷歌showModalDialog()方法不兼容出现对话窗口的解决办法
2016/02/15 Javascript
JavaScript实现使用Canvas绘制图形的基本教程
2016/10/27 Javascript
bootstrap 设置checkbox部分选中效果
2017/04/20 Javascript
vue 中自定义指令改变data中的值
2017/06/02 Javascript
解决VUEX刷新的时候出现数据消失
2017/07/03 Javascript
关于axios不能使用Vue.use()浅析
2018/01/12 Javascript
JavaScript 俄罗斯方块游戏实现方法与代码解释
2020/04/08 Javascript
浅谈Vue3 Composition API如何替换Vue Mixins
2020/04/29 Javascript
微信小程序12行js代码自己写个滑块功能(推荐)
2020/07/15 Javascript
Python实现生成简单的Makefile文件代码示例
2015/03/10 Python
Android应用开发中Action bar编写的入门教程
2016/02/26 Python
python实现守护进程、守护线程、守护非守护并行
2018/05/05 Python
python使用tornado实现登录和登出
2018/07/28 Python
详解如何管理多个Python版本和虚拟环境
2019/05/10 Python
解决Numpy中sum函数求和结果维度的问题
2019/12/06 Python
python3 实现调用串口功能
2019/12/26 Python
python环境搭建和pycharm的安装配置及汉化详细教程(零基础小白版)
2020/08/19 Python
IE10 Error.stack 让脚本调试更加方便快捷
2013/04/22 HTML / CSS
Casetify官网:自制专属手机壳、iPad护壳和Apple Watch手表带
2018/05/09 全球购物
毕业班联欢会主持词
2014/03/27 职场文书
数控技校生自我鉴定
2014/04/19 职场文书
承诺书范文
2014/06/03 职场文书
五好家庭事迹材料
2014/12/20 职场文书
2016年公共机构节能宣传周活动总结
2016/04/05 职场文书
2019新员工试用期转正工作总结范文
2019/08/21 职场文书