魔术方法之__call、__callStatic
1.__call() 作用,当调用不存在的方法时,会调用该方法。实际应用,当程序调用不存在的方法时,意外导致程序终止。

.或者当你调用了受保护的或者是私人的方法时,也会自动调用__call方法

结果:
2.__callStatic()
形式:__callStatic($name,$arr){}
应用场景:
(1):对象调用未定义的静态函数时,自动调用

结果呢:__callStatic里的输出语句了

(2).调用私有或者受保护的静态方法时,会自动调用

结果显而易见:

小结:
1.对于未定义属性进行自动调用的魔术方法有:
(1).__get($obj): 当调用未定义属性时,自动调用
(2).__set($onj):对未定义属性进行赋值时,自动调用
2.对于未定义方法进行自动调用的魔术方法有
(1).__call($name,$arr): 当调用未定义函数时,自动调用
(2).__callStatic($name,$arr):当调用未定义静态函数时,自动调用
3.对原属性进行操作的魔术方法有:
(1).__isset($obj):检测属性是否存在
(2).__unset($obj):将属性进行销毁
4.以上所有魔术方法在调用私有或者受保护的属性或者方法时,自动调用.
魔术方法之__call、__callStatic的更多相关文章
- PHP面向对象魔术方法之__call函数
l 基本介绍: (1) 当我们调了一个不可以访问的成员方法时,__call魔术方法就会被调用. (2) 不可以访问的成员方法的是指(1. 该成员方法不存在, 2. 成员方法是protected或者 p ...
- 魔术方法之__call与__callStatic方法
<?php class human{ private function t(){ } /** * 魔术方法__call * * @param string $method 获得方法名 * @pa ...
- PHP魔术方法之__call与__callStatic方法
<?php class human{ private function t(){ } //魔术方法__call /* $method 获得方法名 $arg 获得方法的参数集合 */ public ...
- PHP常用魔术方法(__call魔术方法:)
魔术方法 __call <?php //文件名:index.php define('a',__DIR__); include '/IMooc/Loader.php'; spl_autoload ...
- 魔术方法以及__call的调用
一.什么是魔术方法? 魔术方法是php中对一类方法的统称,这些方法可以在任何类中被实现.他们通常可以完成一些特殊的无法纯粹依靠自己编程实现的功能.他们通常以双下划线"__"作为名称 ...
- php类知识---魔术方法__toString,__call,__debugInfo
<?php class mycoach{ public function __construct($name,$age) { $this->name = $name; $this-> ...
- php魔术方法的使用
本文测试环境为 php5.5.12 一.__get .__set 将对象的属性进行接管. 一般来说,总是把类的属性定义为private,但是对属性的读取和赋值操作非常频繁,在php5+,预定义__se ...
- PHP中的魔术方法:__construct, __destruct , __call, __callStatic,__get, __set, __isset, __unset , __sleep, __wakeup, __toString, __set_state, __clone and __autoload
1.__get.__set 这两个方法是为在类和他们的父类中没有声明的属性而设计的: __get( $property ) 当调用一个未定义的属性时访问此方法: __set( $property, $ ...
- PHP中的魔术方法总结 :__construct, __destruct , __call, __callStatic,__get, __set, __isset, __unset , __sleep, __wakeup, __toStr
PHP中的魔术方法总结 :__construct, __destruct , __call, __callStatic,__get, __set, __isset, __unset , __sleep ...
随机推荐
- python -- 连接 orclae cx_Oracle的使用 二
转:https://www.cnblogs.com/cyxiaer/p/9396861.html 必需的Oracle链接库的下载地址:https://www.oracle.com/technetwor ...
- learning java FileVisitor 遍丽文件及路径
import java.io.IOException; import java.nio.file.*; import java.nio.file.attribute.BasicFileAttribut ...
- C++对象内存布局,this指针,对象作为参数,作为返回值
class TestClass { public: void setNum(int num) { m_num1 = num; } int getNum() { return m_num1; } pri ...
- 留言板(Nodejs)
一.知识点 ①nodejs实际开发中,通常把所有的HTML文件放到views目录中 ②nodejs实际开发中,通常把所有的静态资源文件放到public目录中,方便统一处理 当浏览器收到HTML响应内容 ...
- pip包管理工具 基本使用
# 简介 pip是一款包管理工具, 和apt, yum, brew功能类似 # 安装 wget --no-check-certificate https://bootstrap.pypa.io/get ...
- 【JZOJ6225】【20190618】计数
题目 对于一个01串,定义\(f(s)\)为\(f(s) = \sum_{i=0}^{\lfloor \frac{|s|}{2} \rfloor -1 }[s_i=s_{|s|-1-i}]\) 定义\ ...
- 第12组 Beta冲刺(3/5)
Header 队名:To Be Done 组长博客 作业博客 团队项目进行情况 燃尽图(组内共享) 展示Git当日代码/文档签入记录(组内共享) 注: 由于GitHub的免费范围内对多人开发存在较多限 ...
- Tkinter 之使用PAGE工具开发GUI界面
一.安装 1.官网下载 PAGE http://page.sourceforge.net/ Tcl(8.6+) https://www.activestate.com/activetcl/downlo ...
- 解析.msh或.cas文件
代码如下:
- fluent将出口温度赋值给入口
Fluent版本:Fluent18.2 首先我们启动Fluent 然后按照正常的流程进行模型缩放,材料的设置,边界条件的设置等等,然后初始化. 在完成了算例的初始化以后 (define (OutToI ...