__call()和__callStatic()方法

php中__call() 和 __callStatic方法的使用 阅读目录二者的应用场景 二者的应用场景 __call 与__callStatic 魔法方法是php5.3后新增的。 1、当要调用的方法不存在或权限不足时,会自动调用__call 方法。 2、当调用的静态方法不存在或权限不足时,会自动调用__callStatic方法。 <?php class Person { public function __call($method, $arguments) { echo '我是要调用的不存在的动态方法名: ', $method, '&l 阅读详情

__call()
   当对象访问不存在的方法时,__call()方法会被自动调用
__callStatic()
   当对象访问不存在的静态方法时,__callStatic()方法会被自动调用

这两个方法在PHP里面也叫方法的重载(overloading)
   注意区分重写(overwrite)
   通过这两个方法,同一个方法的名称的调用可以对应不同的方法实现

 1 <?php
 2 class MagicTest{
 3     //方法重载
 4     //这个方法的参数第一个就是调用的方法的名称,
 5     //第二个参数是方法调用的参数组成的数组
 6     public function __call($name,$arguments) {
 7         echo " Calling ".$name." whith parameters:".implode(", ",$arguments);
 8     }
 9 }
10 
11 $obj = new MagicTest();
12 $obj->runTest("para1","para2");

输出: Calling runTest whith parameters:para1, para2 

 MagicTest() 是不存在 runTest() 函数的,这时自动调用 __call() 函数

1 <?php
2 class MagicTest{
3     public static function __callStatic($name,$arguments) {
4         echo "Static Calling ".$name." whith parameters:".implode(", ",$arguments);
5     }
6 }
7 
8 $obj = new MagicTest();
9 MagicTest::runTest("para1","para2");

还有值得说的一点就是,两个函数可以同时出现

 1 <?php
 2 class MagicTest{
 3     public function __call($name,$arguments) {
 4         echo " Calling ".$name." whith parameters:".implode(", ",$arguments)."<br/>";
 5     }
 6     public static function __callStatic($name,$arguments) {
 7         echo "Static Calling ".$name." whith parameters:".implode(", ",$arguments);
 8     }
 9 }
10 
11 $obj = new MagicTest();
12 $obj->runTest("para1","para2");
13 MagicTest::runTest("para1","para2");

输出:

Calling runTest whith parameters:para1, para2
Static Calling runTest whith parameters:para1, para2

正常时候是不允许同时出现两个相同的名称的( runTest ),

但在面向对象的魔术方法中却可以。

基于springboot医院医疗仪器管理系统 基于Spring Boot的医院医疗仪器管理系统是一款专门为医院设计的高效管理工具。 阅读详情

相关推荐

超声波清洗机拆解实录:从电路板到换能器,一文看懂内部构造(附高清图)

本文详细拆解了超声波清洗机的内部构造,从电路板设计到换能器工作原理,揭示了其核心技术。通过高清图片和详细分析,展示了功率放大电路、高频变压器及压电换能器等关键部件,为电子爱好者和维修技术人员提供了实用的故障诊断和元件二次利用指南。

grape的博客 1182

php中__call与__callstatic()使用

php 5.3 后新增了__call与__callStatic魔法方法。 __call当要调用的方法不存在或权限不足时,会自动调用__call 方法。 __callStatic当调用的静态方法不存在或权限不足时,会自动调用__callStatic方法。 __call($funcname, $arguments) __callStatic($funcname, $argume...

lmp5023的博客 1815

STM32实战:滑模观测器与PLL锁相环融合的FOC无感控制精解

本文深入解析了STM32平台下结合滑模观测器(SMO)与PLL锁相环的无感FOC控制技术。通过实战案例详细介绍了PLL锁相环在消除SMO高频抖振、提升角度跟踪精度方面的关键作用,并分享了工程调参技巧、C语言实现细节及系统联调方法,为电机控制开发者提供了一套完整的解决方案。

weixin_30838873的博客 188

php中 __call与__callStatic的作用与使用场景

关于这两个参数的具体作用是: __call: 在对象中调用一个不可访问方法时,__call() 会被调用。 __callStatic:在静态上下文中调用一个不可访问方法时,__callStatic() 会被调用。 我们先上demo,在去了解这两个方法有哪些具体使用场景 class demo1{ public function exist_in(){ echo '我在'; }...

weixin_44320900的博客 1104

从BAM到bigWig:用UCSC工具链完成测序数据可视化的完整流程

本文详细介绍了从BAM文件到bigWig格式的基因组数据可视化完整流程,涵盖UCSC工具链配置、文件格式转换、参数优化及常见问题解决方案。通过实战指南帮助研究人员高效完成测序数据可视化,特别适合ChIP-seq和RNA-seq数据分析。

weixin_29309213的博客 706

labelImg使用教程

Anaconda环境 安装 Anaconda 之后,在开始菜单下找到 Anaconda 文件夹 找到 Anaconda Prompt 点击运行 安装 labelImg pip install labelImg #直接命令行输入 启动 labelImg labelImg #直接命令行输入名称即可 labelImg界面 开始标注 快捷键:W(创建方框),A(上一张),D(下一张) XML文件示例 <annotation> <folder>夜读</folder>

G果的博客 3万+

魔术方法 :__callStatic( )实例详解

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34209851的博客 251

【K210+STM32项目】基于K210与STM32协同工作的智能垃圾分类系统设计与实现(更新3.0版本)(完整工程资料源码)

STM32F407STM32F407_2(含有app功能)

嵌入式技术开发 2489

什么是 `__call` 和 `__callStatic` 方法?它们的作用是什么?使用场景是什么?底层原理是什么?

_call。

长风破浪会有时的博客 1038

机器学习实战4-教育领域:学生成绩的可视化分析与成绩预测-详细分析

大家好,我是微学AI,今天给大家带来机器学习实战4-学生成绩的可视化分析与成绩预测,机器学习在教育中的应用具有很大的潜力,特别是在学生成绩的可视化分析与成绩预测方面。机器学习可以通过对学生的父母教育情况和学校表现等数据进行分析和挖掘,从而揭示潜在的学习模式和趋势。

微学AI的博客 7676

Android软键盘系统深度解析:架构、原理与实现

Android软键盘系统深度解析:架构与实现原理 本文系统剖析了Android软键盘的核心工作机制。作为系统级输入服务,软键盘具有双重属性:既是可安装的独立应用,又深度集成于系统框架中。文章详细解读了软键盘的系统架构,包括其与InputMethodManagerService(IMMS)和WindowManagerService(WMS)的交互机制,以及通过InputConnection实现的跨进程通信流程。同时分析了输入法窗口的特殊管理策略、布局调整模式,并深入探讨了输入预测引擎的实现原理,包括词典加载、

保持专注,保持热爱 114

_call() 和 __callStatic() 魔术方法在什么情况下会被调用?

想象你有一个魔法盒子(对象),这个盒子有很多神奇的功能(方法)。有一天,你想用这个盒子做一个新的魔法(调用一个新方法),但是这个魔法盒子并没有这个功能。这时,魔法盒子里的一个特殊机制(还是想象你有一个魔法盒子,但是这个盒子有一些不需要打开盒子就能使用的魔法(静态方法)。有一天,你想用一个这样的魔法,但是这个魔法并不存在。方法)就会被触发,告诉你:“哎呀,你想用的这个不需要打开盒子的魔法我可不会哦!方法)就会被触发,告诉你:“哎呀,你想做的这个魔法我可不会哦!方法),但是魔法盒子并没有这个功能,所以。

长风破浪会有时的博客 399

【LAMMPS学习】四、运行 LAMMPS(2)命令行选项

本部分解释了在安装可执行文件或下载源代码并构建可执行文件后如何运行 LAMMPS。命令文档页面描述了输入脚本的结构以及它们可以包含的命令。

荷塘阅色 5241

php魔术方法call()和callStatic()

__call 当调用无权限或者不存在的方法,并且带有参数,想调用会被自动执行数组 __callStatic 是调用不可见的静态方法,自动调用 class Weather{ public function __call($m,$args){ echo $m,'天气预报'; } public function __callStatic($M,$K){ echo "你想调用...

qq839534800的博客 201

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

php的魔术方法__call()和__callStatic()方法

1.__call()方法: &lt;?php class Test { public function __call($method, $arg){ echo '调用了不存在的'.$method.'方法&lt;br/&gt;'; echo '还传了一个参数&lt;br/&gt;'; echo print_r($arg).'&lt;br/&...

Liu_Jun_Tao的博客 335

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

PHP中的魔术方法之__call()和__callStatic()方法的使用

对于这两个方法的使用,不做过多的解释,通过实例代码和结果,大家可以更加清晰的认识两者的作用 1.__call()方法。当调用一个没有在类中声明的方法时,可以调用__call()方法代替声明一个方法。接受方法名和数组作为参数。 代码实例: <?php class test{ //魔术方法__call /* $method 获得方法名 $arg 获得方法的参数集合 *...

moliyiran的专栏 314

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

php魔术方法call,PHP 魔术方法 __call() 和 __callStatic()

在 PHP 的面向对象中,当对象访问一个不存在的方法或者一个类访问一个不存在的静态方法时,都会报错。__call() 和 __callStatic()__call() 对象访问一个不存在的方法时执行__callStatic() 类访问一个不存在的静态方法时执行public function __call($name, $arguments)public function __callStatic(...

weixin_39644139的博客 173

php __call 使用场景,php中__call() 和 __callStatic方法的使用

__call与__callStatic魔法方法是php5.3后新增的,二者的应用场景:1、当要调用的方法不存在或权限不足时,会自动调用__call 方法。2、当调用的静态方法不存在或权限不足时,会自动调用__callStatic方法。class Person{public function __call($method, $arguments) {echo '我是要调用的不存在的动态方法名: ...

weixin_42522953的博客 692

PHP之__call()方法和__callStatic()方法

在php的面向对象里,用得最多的魔术方法一定是__construct方法。而在很多很多地方,__call方法和__callStatic方法用得地方一样很多,而且特别好用呢。下面举个应用的例子。 这里就拿yansongda pay来举例子。这个是集成了微信和支付宝的支付相关的插件。 class Pay { /** * 定义Config配置. * * @var...

weixin_33782386的博客 326

PHP中__call()方法与重载解析

一、前言   特别注意,虽然__call()或__callStatic()方法就是为实现重载而设计的,但是为了便于理解,先将两者分开进行理解!!!   __call()方法的特性是它的特性,用其实现重载是实现重载,这是两码事~ 二、__call()方法   在PHP5.3.0之后,又增加了一个__callStatic()方法。它们都是PHP中的魔术方法,所谓魔术方法,就是系统在特定时刻自动...

风的专栏 3595

『PHP』魔术方法__call()与__callStatic()

文章目录一、__call()功能描述二、__call()例子完 一、__call()功能描述 在对象中调用一个不可访问方法时,__call()会被调用 在静态上下文中调用一个不可访问方法时,__callStatic()会被调用 调用某个实例化对象中不存在、不可访问的方法时,PHP会调用__call()方法以处理错误调用,而不是抛错 调用未实例化的类中不存在、不可访问的方法时,则调用__callStatic() 二者处理了不可访问方法的重载 它们拥有相同的两个传参:$name用以获取此时调用的不可访问方法的名

Ho1aAs‘s Blog 1410

php getstatic,php的魔术方法__get(),__set(),__call(),__callStatic()以及static用法详解

php5之后实现了一些魔术方法还是比较有意思的,之前一直用面向过程的编程方法,对oop研究的比较少,最近在看oop的东西,还是比较有意思的。魔术方法这些东西,感觉很大一部分就是为了偷懒用的,记得最早写php的时候,那时候做博客,用的是国外的一个叫lifetype的开源框架,那时候还是php4.3,但是那个框架里全部实现了对象,所有的数据都被封装到对象中。于是当从db里select出来一堆东西之后,...

weixin_39620151的博客 390

PHP中的魔术方法__call()方法

__call()或__callStatic()方法就是为了实现重载而设计的,但是为了便于理解,先将两者分开进行理解。 __call()方法的特性是它的特性,用它实现重载和实现重载不不是一回事。 __call()方法: 在php 5.3.0之后,又增加了一个__callStatic()方法。他们都是PHP中的魔术方法。对于魔术方法,个人理解就是,各个魔术方法有一个共同点:系统自动调用,有两个不同点:...

weixin_44572041的博客 1072
上一篇: 开发 Composer 包详细步骤
下一篇: 十大经典排序算法(动图演示)
firstcode666
博客等级 码龄5年 53粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值