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一些服务器端特性的配置加强php的安全
Oct 09 PHP
PHP脚本的10个技巧(5)
Oct 09 PHP
[原创]PHP中通过ADODB库实现调用Access数据库之修正版本
Dec 31 PHP
php数字游戏 计算24算法
Jun 10 PHP
PHP常用开发函数解析之数组篇[未完结]
Jul 30 PHP
浅谈web上存漏洞及原理分析、防范方法(文件名检测漏洞)
Jun 29 PHP
zen_cart实现支付前生成订单的方法
May 06 PHP
mac系统下为 php 添加 pcntl 扩展
Aug 28 PHP
完美解决Thinkphp3.2中插入相同数据的问题
Aug 01 PHP
PHP删除数组中指定下标的元素方法
Feb 03 PHP
PHP面向对象程序设计子类扩展父类(子类重新载入父类)操作详解
Jun 14 PHP
4种Windows系统下Laravel框架的开发环境安装及部署方法详解
Apr 06 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的SQL注入实现(测试代码安全不错)
2011/02/27 PHP
PHP中判断变量为空的几种方法小结
2013/11/12 PHP
php使用curl和正则表达式抓取网页数据示例
2014/04/13 PHP
php中header设置常见文件类型的content-type
2015/06/23 PHP
PHP模板引擎Smarty内建函数foreach,foreachelse用法分析
2016/04/11 PHP
php微信公众号js-sdk开发应用
2016/11/28 PHP
浅谈PHP中的Trait使用方法
2019/03/22 PHP
CI框架教程之优化验证码机制详解【验证码辅助函数】
2019/04/16 PHP
jquery 简短几句代码实现给元素动态添加及获取提示信息
2011/09/01 Javascript
Jvascript学习实践案例(开发常用)
2012/06/25 Javascript
jqTransform美化表单
2015/10/10 Javascript
Javascript中常用类型的格式化方法小结
2016/12/26 Javascript
BootStrap与Select2使用小结
2017/02/17 Javascript
使用socket.io实现简单聊天室案例
2018/01/02 Javascript
vue2.0实现前端星星评分功能组件实例代码
2018/02/12 Javascript
js如何找出字符串中的最长回文串
2018/06/04 Javascript
npm配置国内镜像资源+淘宝镜像的方法
2018/09/07 Javascript
使用jQuery实现掷骰子游戏
2019/10/24 jQuery
python 有效的括号的实现代码示例
2019/11/11 Python
windows中安装Python3.8.0的实现方法
2019/11/19 Python
TensorFlow加载模型时出错的解决方式
2020/02/06 Python
Python编程快速上手——疯狂填词程序实现方法分析
2020/02/29 Python
Cole Haan官方网站:美国时尚潮流品牌
2017/12/06 全球购物
武汉东之林科技有限公司机试
2013/09/17 面试题
node中使用shell脚本的方法步骤
2021/03/23 Javascript
硕士研究生自我鉴定
2013/11/08 职场文书
好人好事事迹材料
2014/02/12 职场文书
房地产广告词大全
2014/03/19 职场文书
2014年五四青年节活动策划书
2014/04/22 职场文书
教师学习八项规定六项禁令思想汇报
2014/09/27 职场文书
安全生产月宣传标语
2014/10/06 职场文书
民主评议党员个人自我评价
2015/03/03 职场文书
教师创先争优承诺书
2015/04/27 职场文书
预备党员入党感言
2015/08/01 职场文书
结婚喜宴祝酒词
2015/08/10 职场文书
2021年国漫热度排行前十,完美世界上榜,第四是美国动画作品
2022/03/18 国漫