php面向对象魔术方法,PHP面向对象中的魔术方法
魔术方法:某种场景下,能够自动调用的方法
如: __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面向对象中的魔术方法相关推荐
- linux中替换的方法,linux vi 中s 替换方法
vi/vim 中可以使用 :s 命令来替换字符 :s/vivian/sky/ 替换当前行第一个 vivian 为 sky :s/vivian/sky/g 替换当前行所有 vivian 为 sky :n ...
- java中函数和方法区别_java中函数和方法的区别是什么?
java中函数和方法的区别是什么? 面向对象的语言叫方法 面向过程的语言叫函数 在java中没有函数这么一说,只有方法一说.实际上方法就是函数,函数就是方法,只是在不同的语言不同的称呼而已. [推荐教 ...
- python使用方法-在Python中使用next()方法操作文件的教程
next()方法当一个文件被用作迭代器,典型例子是在一个循环中被使用,next()方法被反复调用.此方法返回下一个输入行,或引发StopIteration异常EOF时被命中. 与其它文件的方法,如Re ...
- 【Groovy】闭包 Closure ( 闭包调用 与 call 方法关联 | 接口中定义 call() 方法 | 类中定义 call() 方法 | 代码示例 )
文章目录 总结 一.接口中定义 call() 方法 二.类中定义 call() 方法 三.完整代码示例 总结 在 实例对象后使用 " () " 括号符号 , 表示调用该实例对象的 ...
- java 工厂方法模式_Java中的工厂方法模式
java 工厂方法模式 在上一篇有关模板方法模式的文章中 ,我展示了如何利用lambda表达式和默认方法 . 在本文中,我将探讨工厂方法模式,并了解如何利用方法引用,这是Java 8中与lambda表 ...
- main的方法是Java_Java中的main()方法
在Java中,main()方法是Java應用程序的入口方法,也就是說,程序在運行的時候,第一個執行的方法就是main()方法,這個方法和其他的方法有很大的不同,比如方法的名字必須是main,方法必須是 ...
- jquery中的map()方法与js中的map()方法
1.jquery中的map()方法 首先看一个简单的实例: $("p").append( $("input").map(function(){ return $ ...
- 自定义工具类Static方法调用业务中Service层方法
文章目录 前言 一.如何实现? 二.Util工具类实现 代码相关注解 总结 前言 今天需要验证OpenId,来看是否为系统用户,直接封装一个工具类,遇到了调用业务层service的方法.记一次学习笔记 ...
- 在html页面用js方法,在HTML中使用JS方法总结
这次给大家带来在HTML中使用JS方法总结,在HTML中使用JS的注意事项有哪些,下面就是实战案例,一起来看一下. 前言 JavaScript是浏览器的内置脚本语言.当网页中嵌入了JavaScript ...
- java 方法互斥_Java中的互斥方法执行
检查底部的更新 – 我不认为这种方法可行.留下它作为信息. >如果某个线程在b()中,则尝试执行a()的线程将阻塞,直到执行b()结束. >如果一个线程在b()中并且第二个线程试图运行b( ...
最新文章
- 工业电脑中PCI、CPCI、PXI插槽的区别
- oracle 增长型分区,oracle 11g 分区表创建(自动按年分区)
- Java 8中的instanceof运算符和访客模式替换
- 数据结构——队列的C++实现
- 3月30日见!荣耀30S外观“偷跑”:经典蝶羽纹理设计
- stm32的rxne和idle中断_STM32 HAL CubeMX 串口IDLE接收空闲中断+DMA
- 风波中的滴滴:离无人驾驶落地还有多远?
- 三分钟训练眼球追踪术,AI就知道你在盯着哪个妹子 | TensorFlow.js代码
- 强悍的命令行 —— echo、env($PATH)、sudo
- 数据库中单个表数据备份
- 勒索病毒c语言源代码,勒索病毒原理解析
- MUSIC算法---空间谱估计
- 什么是Flex布局?
- 2013 01 12 三星发布最新八核处理器SoC “Exynos 5 Octa”
- c++ 输入一个日期,计算出该日期是这一年中的第几天(switch语句)
- 联发科p60和骁龙710哪个好_骁龙670、联发科P60和麒麟710哪个好 详细对比介绍
- 小弟为共享软件作者制作的管理软件注册的动态链接库 (转)
- 二层交换机的工作原理
- 文科生可报考那些计算机学校,文科生/600分以上可以报考哪些学校?
- 单价数量和总价的公式_知道总价和数量怎么算单价
热门文章
- 无根二叉树_无根Podman如何工作?
- 如何双启动Linux和Windows
- MySql | 为什么大家都在说 Select * 效率低
- Bootstrap 滚动监听插件Scrollspy 的方法
- 怎样在vrep child scirpt里定义自己写的函数
- java 网页通讯_Vue+Java 通过websocket实现服务器与客户端双向通信操作
- jdbc读取mysql时分秒yyyy-mm-dd hh:_[转]JDBC中日期时间的处理技巧
- java compare时间_java.time.LocalDateTime compareTo()方法
- WPF中退出时显示是否保存数据提示
- [DB2]Linux下安装db2 v9.7