魔术方法:某种场景下,能够自动调用的方法

如: __construct、 __destruct、__set、 __get、 __isset、__unset、__call

__construct(): 构造方法,new 实例时,自动调用

__destruct(): 析构方法,对象销毁时自动调用

__get(属性名): 当读取对象的一个不可见属性时,自动调用,并返回值

不可见: 未定义或无权访问时

__set(属性名,属性值): 当对一个不可见的属性赋值时,自动调用

__isset(属性名): 当用isset,或empty判断一个不可见属性时,自动调用

__unset(属性名): 当unset一个不可见属性时,自动调用<?php

class Human{

//构造方法,new 实例时,自动调用

public function __construct(){

echo '构造方法';

}

//析构方法,对象销毁时自动调用

public function __destruct(){

echo '析构方法';

}

//当读取对象的一个不可见属性时,自动调用,并返回值

public function __get($a){

echo $a;

}

//当对一个不可见的属性赋值时,自动调用

public function __set($b,$c){

echo $b.'-'.$c;

}

//当用isset,或empty判断一个不可见属性时,自动调用

public function __isset($d){

echo $d;

}

//当unset一个不可见属性时,自动调用

public function __unset($f){

echo $f;

}

}

$zhangSan = new Human();

$zhangSan->daQiu;//daQiu

$zhangSan->kan = '变形金刚';//kan-变形金刚

isset($zhangSan->zhangFei);//zhangFei

unset($zhangSan->liuBei);//liuBei

php面向对象魔术方法,PHP面向对象中的魔术方法相关推荐

  1. linux中替换的方法,linux vi 中s 替换方法

    vi/vim 中可以使用 :s 命令来替换字符 :s/vivian/sky/ 替换当前行第一个 vivian 为 sky :s/vivian/sky/g 替换当前行所有 vivian 为 sky :n ...

  2. java中函数和方法区别_java中函数和方法的区别是什么?

    java中函数和方法的区别是什么? 面向对象的语言叫方法 面向过程的语言叫函数 在java中没有函数这么一说,只有方法一说.实际上方法就是函数,函数就是方法,只是在不同的语言不同的称呼而已. [推荐教 ...

  3. python使用方法-在Python中使用next()方法操作文件的教程

    next()方法当一个文件被用作迭代器,典型例子是在一个循环中被使用,next()方法被反复调用.此方法返回下一个输入行,或引发StopIteration异常EOF时被命中. 与其它文件的方法,如Re ...

  4. 【Groovy】闭包 Closure ( 闭包调用 与 call 方法关联 | 接口中定义 call() 方法 | 类中定义 call() 方法 | 代码示例 )

    文章目录 总结 一.接口中定义 call() 方法 二.类中定义 call() 方法 三.完整代码示例 总结 在 实例对象后使用 " () " 括号符号 , 表示调用该实例对象的 ...

  5. java 工厂方法模式_Java中的工厂方法模式

    java 工厂方法模式 在上一篇有关模板方法模式的文章中 ,我展示了如何利用lambda表达式和默认方法 . 在本文中,我将探讨工厂方法模式,并了解如何利用方法引用,这是Java 8中与lambda表 ...

  6. main的方法是Java_Java中的main()方法

    在Java中,main()方法是Java應用程序的入口方法,也就是說,程序在運行的時候,第一個執行的方法就是main()方法,這個方法和其他的方法有很大的不同,比如方法的名字必須是main,方法必須是 ...

  7. jquery中的map()方法与js中的map()方法

    1.jquery中的map()方法 首先看一个简单的实例: $("p").append( $("input").map(function(){ return $ ...

  8. 自定义工具类Static方法调用业务中Service层方法

    文章目录 前言 一.如何实现? 二.Util工具类实现 代码相关注解 总结 前言 今天需要验证OpenId,来看是否为系统用户,直接封装一个工具类,遇到了调用业务层service的方法.记一次学习笔记 ...

  9. 在html页面用js方法,在HTML中使用JS方法总结

    这次给大家带来在HTML中使用JS方法总结,在HTML中使用JS的注意事项有哪些,下面就是实战案例,一起来看一下. 前言 JavaScript是浏览器的内置脚本语言.当网页中嵌入了JavaScript ...

  10. java 方法互斥_Java中的互斥方法执行

    检查底部的更新 – 我不认为这种方法可行.留下它作为信息. >如果某个线程在b()中,则尝试执行a()的线程将阻塞,直到执行b()结束. >如果一个线程在b()中并且第二个线程试图运行b( ...

最新文章

  1. 工业电脑中PCI、CPCI、PXI插槽的区别
  2. oracle 增长型分区,oracle 11g 分区表创建(自动按年分区)
  3. Java 8中的instanceof运算符和访客模式替换
  4. 数据结构——队列的C++实现
  5. 3月30日见!荣耀30S外观“偷跑”:经典蝶羽纹理设计
  6. stm32的rxne和idle中断_STM32 HAL CubeMX 串口IDLE接收空闲中断+DMA
  7. 风波中的滴滴:离无人驾驶落地还有多远?
  8. 三分钟训练眼球追踪术,AI就知道你在盯着哪个妹子 | TensorFlow.js代码
  9. 强悍的命令行 —— echo、env($PATH)、sudo
  10. 数据库中单个表数据备份
  11. 勒索病毒c语言源代码,勒索病毒原理解析
  12. MUSIC算法---空间谱估计
  13. 什么是Flex布局?
  14. 2013 01 12 三星发布最新八核处理器SoC “Exynos 5 Octa”
  15. c++ 输入一个日期,计算出该日期是这一年中的第几天(switch语句)
  16. 联发科p60和骁龙710哪个好_骁龙670、联发科P60和麒麟710哪个好 详细对比介绍
  17. 小弟为共享软件作者制作的管理软件注册的动态链接库 (转)
  18. 二层交换机的工作原理
  19. 文科生可报考那些计算机学校,文科生/600分以上可以报考哪些学校?
  20. 单价数量和总价的公式_知道总价和数量怎么算单价

热门文章

  1. 无根二叉树_无根Podman如何工作?
  2. 如何双启动Linux和Windows
  3. MySql | 为什么大家都在说 Select * 效率低
  4. Bootstrap 滚动监听插件Scrollspy 的方法
  5. 怎样在vrep child scirpt里定义自己写的函数
  6. java 网页通讯_Vue+Java 通过websocket实现服务器与客户端双向通信操作
  7. jdbc读取mysql时分秒yyyy-mm-dd hh:_[转]JDBC中日期时间的处理技巧
  8. java compare时间_java.time.LocalDateTime compareTo()方法
  9. WPF中退出时显示是否保存数据提示
  10. [DB2]Linux下安装db2 v9.7