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 不同编码下的字符串长度区分
Sep 26 PHP
ajax在joomla中的原生态应用代码
Jul 19 PHP
通过php快速统计某个数据库中每张表的数据量
Sep 04 PHP
PHP删除HTMl标签的实现代码
Jun 30 PHP
php写入数据到CSV文件的方法
Mar 14 PHP
PHP生成指定随机字符串的简单实现方法
Apr 01 PHP
PHP自定义函数获取汉字首字母的方法
Dec 01 PHP
浅谈PHP的数据库接口和技术
Dec 09 PHP
PHP7扩展开发教程之Hello World实现方法示例
Aug 03 PHP
PHP 应用容器化以及部署方法
Feb 12 PHP
Laravel 不同生产环境服务器的判断实践
Oct 15 PHP
PHP 计算至少是其他数字两倍的最大数的实现代码
May 26 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
异世界新番又来了,同样是从零开始,男主的年龄降到5岁
2020/04/09 日漫
用PHP连接MySQL代码的参数说明
2008/06/07 PHP
PHP逐行输出(ob_flush与flush的组合)
2012/02/04 PHP
php中cookie的使用方法
2014/03/29 PHP
ThinkPHP实现将SESSION存入MYSQL的方法
2014/07/22 PHP
php实现的树形结构数据存取类实例
2014/11/29 PHP
从wamp到xampp的升级之路
2015/04/08 PHP
thinkphp5框架路由原理与用法详解
2020/02/11 PHP
js判断鼠标同时离开两个div的思路及代码
2013/05/31 Javascript
jQuery function的正确书写方法
2013/08/02 Javascript
复制网页内容,粘贴之后自动加上网址的实现方法(脚本之家特别整理)
2014/10/16 Javascript
javascript实现全角转半角的方法
2016/01/23 Javascript
angularjs定时任务的设置与清除示例
2017/06/02 Javascript
在ABP框架中使用BootstrapTable组件的方法
2017/07/31 Javascript
浅谈vue-lazyload实现的详细过程
2017/08/22 Javascript
使用JS模拟锚点跳转的实例
2018/02/01 Javascript
通过webpack引入第三方库的方法
2018/07/20 Javascript
jQuery实现导航样式布局操作示例【可自定义样式布局】
2018/07/24 jQuery
小程序点餐界面添加购物车左右摆动动画
2020/09/23 Javascript
Python 多线程的实例详解
2017/09/07 Python
Python实现的读写json文件功能示例
2018/06/05 Python
python3.6的venv模块使用详解
2018/08/01 Python
python实现浪漫的烟花秀
2019/01/30 Python
Python requests模块实例用法
2019/02/11 Python
python实现随机漫步方法和原理
2019/06/10 Python
如何将PySpark导入Python的放实现(2种)
2020/04/26 Python
为2021年的第一场雪锦上添花:用matplotlib绘制雪花和雪景
2021/01/05 Python
HTML5中原生的右键菜单创建方法
2016/06/28 HTML / CSS
John Hardy官方网站:手工设计首饰的奢侈品牌
2017/07/05 全球购物
初中生个人学习的自我评价
2013/12/04 职场文书
历史专业个人求职信分享
2013/12/20 职场文书
工作检讨书大全
2015/01/26 职场文书
自荐信格式模板
2015/03/27 职场文书
学习《中小学教师职业道德规范》心得体会
2016/01/18 职场文书
使用Html+Css实现简易导航栏功能(导航栏遇到鼠标切换背景颜色)
2021/04/07 HTML / CSS
MySQL 表空间碎片的概念及相关问题解决
2021/05/07 MySQL