PHP中的常用魔术方法
克隆方法
当对象被格隆时,将会自动调用
"有人克隆我!假冒";
//当对象被格隆时,将会自动调用
//克隆$lisi对象
//输出
有人格隆我!假冒
$money='30两';
$name='lisi';
__get($p){
"你想访问我的",$p,'属性';
//输出 lisi
//输出
你想访问我的age属性
//输出
你想访问我的friend属性
当调用未定义的属性时,也会自动调用__get方法
你调用时的属性名
//调用了不存在的属性并赋值
这两个居然加到了对象里
$money="30两";
__set($a,$b){
echo '你想设置我的',$a,'属性';
echo '且值是',$b;
//输出 你想设置我的aaa属性
且值是111
//输出
你想设置我的money属性 且值是40两
//输出
你想设置我的age属性 且值是28
$name属性的值改了
属性 属性值
$bone="猪腿骨";
__isset($p){
'你想判断我的',$p,'属性存不存在';
return 1;
//这里return
1 会影响 isset的判断为真了
'你想去掉我的',$p;
//isset是语法结构判断变量是否存在
//输出
4
触发了 __isset魔术方法
输出
你想判断我的tail属性存不存在
//输出 有tail属性
就是因为
__isset里面return 了 真 才会导致判断失误
"没有tail属性";
isset判断对象不可见的属性时(protected/private/不存在的属性)
会触发 __unset魔术方法 输出
你想去掉我的tail
__unset魔术方法
__unsert('tail');
hello(){
'hello';
t(){
echo "你";
__call($metch,$argu){
echo '你想调用一个我不存在或无权操作的方法',$metch,'
';
echo '你调用时还传了参数';
print_r($argu);
//调用未定义的方法会触发 __call魔术方法
//输出
你想调用一个我不存在或无权操作的方法say
你调用时还传了参数
Array ()
//调用私有的方法 也会触发 __call 魔术方法
//输出
你想调用一个我不存在或无权操作的方法t 你调用时还传了参数
Array ([0]=>1 [1]=>2 [2]=>3)
__call('t',array(1,2,3));
你调用方法时没带参数就是一个空数组
带了参数就是参数组成的数组
static protected function qq(){
__callStatic($a,$b){
"你想调用一个不存在或无权调用的静态方法",$a,"
";
';
你想调用一个不存在或无权调用的静态方法say
//你想调用时还传了参数
Array ( [0] => 痛苦 [1] => 悲哀 [2] => 爱
)
//输出
你想调用一个不存在或无权调用的静态方法qq
// 你想调用时还传了参数 Array (
)
声明__callStatic 注意要带 static
__callStatic 魔术方法
__callStatic(‘say’,array(1,2,3));
你调用方法时没带参数就是一个空数组
带了参数就是参数组成的数组
PHP中的常用魔术方法的更多相关文章
- php中的常用魔术方法总结
以下是对php中的常用魔术方法进行了详细的总结介绍,需要的朋友可以过来参考下 常用的魔术方法有:__Tostring () __Call() __autoLoad() __ clone() __GET ...
- Python中的常用魔术方法介绍
1.__init__ 初始化魔术方法 触发时机:初始化对象时触发(不是实例化触发,但是和实例化在一个操作中) 参数:至少有一个self,接收对象 返回值:无 作用:初始化对象的成员 注意:使用该方式初 ...
- php中常用魔术方法的举例
魔术方法是php面向对象特有的功能,并且有时候能实现意想不到的效果,包括前面提到的构造函数.析构函数.还有__clone函数,另外再简单的介绍几个: 1.__toSring和__invoke clas ...
- PHP 中 16 个魔术方法详解
PHP 中 16 个魔术方法详解 前言 PHP中把以两个下划线__开头的方法称为魔术方法(Magic methods),这些方法在PHP中充当了举足轻重的作用. 魔术方法包括: __constru ...
- python常用魔术方法概览
构造和初始化 __init__(self, args) 构造函数 __new__(cls) 传入的是类实例 __del__(self) 析构函数,调用 del cls 时会被调用 属性访问控制 __g ...
- c#中的常用ToString()方法总结
c#中的常用ToString()方法总结 对于int,double等的tostring: C 货币 2.5.ToString("C") ¥2.50 D 十进制数 25.ToStri ...
- 问题:C# ToString("P");结果:c#中的常用ToString()方法总结
c#中的常用ToString()方法总结 很多类都重写了ToString方法, 导致很多类的tostring到底执行了什么,有哪些参数,都不清楚 对于int,double等的tostring: C ...
- [Python3 填坑] 014 类的常用魔术方法举例
目录 1. print( 坑的信息 ) 2. 开始填坑 2.1 __init__() 2.2 __new__() 2.3 __call__() 2.4 __str__() 2.5 __repr__() ...
- Python 基础之面向对象之常用魔术方法
一.__init__魔术属性 触发时机:实例化对象,初始化的时候触发功能:为对象添加成员,用来做初始化的参数:参数不固定,至少一个self参数返回值:无 1.基本用法 #例:class MyClass ...
随机推荐
- linux 下 修改mysql账号密码
1.root用户登录到mysql数据库代码示例:/usr/local/mysql/bin/mysql -u root -p (输入密码进入mysql)2.进入mysql,输入:代码示例:use mys ...
- ex6的选择器
前面的话 尽管DOM作为API已经非常完善了,但是为了实现更多的功能,DOM仍然进行了扩展,其中一个重要的扩展就是对选择器API的扩展.人们对jQuery的称赞,很多是由于jQuery方便的元素选择器 ...
- ios本地化多语言支持
右键 -> new file -> resources -> strings file 一定要命名为: Localizable.strings 点击这个文件 -> xocde ...
- PHP学习路线
0x1 0x2
- 浅谈VBA
VBA,全称Visual Basic for Applications,其中的一些专业性的解释可以自行搜索,这里就不一一介绍.半年以前,我是不知道VBA的,当我听到VBA的时候,我却迷糊了.VBA是什 ...
- putty快速设置本地代理
sudo plink -D 127.0.0.1:8888 -l root -P 443 -pw xxx 104.xxx.xxx.xxx
- JAVA上百实例源码以及开源项目
简介 笔者当初为了学习JAVA,收集了很多经典源码,源码难易程度分为初级.中级.高级等,详情看源码列表,需要的可以直接下载! 这些源码反映了那时那景笔者对未来的盲目,对代码的热情.执着,对IT的憧憬. ...
- UNIX进程
UNIX进程控制的博客 http://blog.csdn.net/yang_yulei/article/details/17404021 Linux的概念与体系 http://www.cnb ...
- 【leetcode】Reverse Linked List II
Reverse Linked List II Reverse a linked list from position m to n. Do it in-place and in one-pass. F ...
- C# 中的virtural和abstract
一. Virtual 方法(虚方法) virtual 关键字用于在基类中修饰方法.virtual 的使用有两种情况: 1.在基类中定义了virtual方法,但是派生类中没有重写该虚方法,那么在对派生类 ...