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 ...
随机推荐
- Sqli-LABS通关笔录-11[sql注入之万能密码以及登录框报错注入]
在这一关卡我学到了 1.万能密码的构造,大概的去揣测正常的SQL语句是如何的. 2. 3. 00x1 SQL万能密码的构造 在登录框当中可以添加了一个单引号.报错信息如下所示: 据此报错,我们大概的可 ...
- OpenCV加载图像并显示
从文件中读取一直一张图片,并加载出来 代码: #include "stdafx.h" #include "iostream" using namespace s ...
- Intent flag 与启动模式的对应关系
Activity有四种启动模式: 1.standard(标准) 2.singleTop 3.singleTask 4.singleInstance 标识某个Activity的启动模式,有 ...
- Hifiman:一个国产音频厂商的忧伤[转]
一则苹果计划32亿美元收购音频设备厂商Beats的消息,让音频设备——这个极少被人们重视又时刻离不开的产品重新引发了关注. 国产数码品牌通常都被自然的贴上低端.低质的标签.然而难能可贵的是,国产音频设 ...
- Linux下多网卡同网段多IP网络分流设定方法
Linux下多网卡同网段多IP网络分流设定方法 -- :: 标签:Linux下多网卡同网段多IP网络分流设定方法 当服务器需要较高的网络流量时,在其它资源不造成瓶颈的情况下无疑会用到多网卡. 第1选项 ...
- linux系统vsftpd登陆慢卡怎么办
linux系统vsftpd登陆慢卡怎么办 浏览:145 | 更新:2013-12-31 00:50 vsftpd是linux系统中的一款ftp软件,用它可以实现文件,数据上传与下载,但有些用户会发现v ...
- java的事务处理
本文转自http://zhenchengchagangzi.iteye.com/blog/1159493 java的事务处理,如果对数据库进行多次操作,每一次的执行或步骤都是一个事务.如果数据库操作在 ...
- Unity3d 鼠标拣选小功能集合
最近在做一些优化工具,把鼠标拣选的功能单独抽出来. 可遍历所有选中的某类型资源,会递归文件夹 可编译所有prefab的某个Component,也是递归的 using UnityEngine; usin ...
- 6.nodejs权威指南--进程
1. 进程 var net = require('net'); var cluster = require('cluster'); cluster.setupMaster({ exec:'child. ...
- settings的保存位置
xp:C:\Documents and Settings\Administrator\Local Settings\Application Data\ win8 C:\Users\XXX\AppDat ...