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 foreach循环使用详解与实例代码
May 08 PHP
PHP连接MongoDB示例代码
Sep 06 PHP
php防注入,表单提交值转义的实现详解
Jun 10 PHP
新浪SAE搭建PHP项目教程
Jan 28 PHP
分享一则PHP定义函数代码
Feb 26 PHP
PHP实现通过Luhn算法校验信用卡卡号是否有效
Mar 23 PHP
PHP使用redis实现统计缓存mysql压力的方法
Nov 14 PHP
Zend Framework动作助手(Zend_Controller_Action_Helper)用法详解
Mar 05 PHP
PHP引用返回用法示例
May 28 PHP
PHP实现页面静态化的超简单方法
Sep 06 PHP
PHP7标量类型declare用法实例分析
Sep 26 PHP
PHP Cli 模式设置进程名称的方法
Jun 12 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
推荐一篇入门级的Class文章
2007/03/19 PHP
PHP简单判断字符串是否包含另一个字符串的方法
2016/03/25 PHP
php版交通银行网银支付接口开发入门教程
2016/09/26 PHP
php strftime函数的详细用法
2018/06/21 PHP
PHP常用函数之base64图片上传功能详解
2019/10/21 PHP
List the Codec Files on a Computer
2007/06/11 Javascript
jquery 上下滚动广告
2009/06/17 Javascript
创建你的第一个AngularJS应用的方法
2015/06/16 Javascript
jquery小火箭返回顶部代码分享
2015/08/19 Javascript
JavaScript的设计模式经典之代理模式
2016/02/24 Javascript
jQuery+CSS实现简单切换菜单示例
2016/07/27 Javascript
jQuery中的一些小技巧
2017/01/18 Javascript
HTML5+Canvas调用手机拍照功能实现图片上传(上)
2017/04/21 Javascript
Angular2学习教程之TemplateRef和ViewContainerRef详解
2017/05/25 Javascript
详解Nodejs之静态资源处理
2017/06/05 NodeJs
原来JS还可以这样拆箱转换详解
2019/02/01 Javascript
JavaScript实现随机点名器实例详解
2019/05/07 Javascript
微信小程序webview组件交互,内联h5页面并网页实现微信支付实现解析
2019/08/16 Javascript
解决微信小程序scroll-view组件无横向滚动的问题
2020/02/04 Javascript
Python实现简单的可逆加密程序实例
2015/03/05 Python
python监控文件或目录变化
2016/06/07 Python
python实现嵌套列表平铺的两种方法
2018/11/08 Python
浅析python的Lambda表达式
2019/02/27 Python
详解python运行三种方式
2019/05/13 Python
python基于paramiko将文件上传到服务器代码实现
2019/07/08 Python
使用Python和百度语音识别生成视频字幕的实现
2020/04/09 Python
基于python实现MQTT发布订阅过程原理解析
2020/07/27 Python
Python截图并保存的具体实例
2021/01/14 Python
心理学专业毕业生推荐信范文
2013/11/21 职场文书
美容院营销方案
2014/03/05 职场文书
竞选团支书演讲稿
2014/04/28 职场文书
大学优秀班集体申报材料
2014/05/23 职场文书
学院党的群众路线教育实践活动第一阶段情况汇报
2014/10/25 职场文书
2014年科室工作总结
2014/11/20 职场文书
python文件目录操作之os模块
2021/05/08 Python
拙作再改《我的收音机情缘》
2022/04/05 无线电