PHP魔术方法之__call与__callStatic方法
- <?php
- class human{
- private function t(){
- }
- //魔术方法__call
- /*
- $method 获得方法名
- $arg 获得方法的参数集合
- */
- public function __call($method,$arg){
- echo '你想调用我不存在的方法',$method,'方法<br/>';
- echo '还传了一个参数<br/>';
- echo print_r($arg),'<br/>';
- }
- //魔术方法__callStatic
- public static function __callStatic($method,$arg){
- echo '你想调用我不存在的',$method,'静态方法<br/>';
- echo '还传了一个参数<br/>';
- echo print_r($arg),'<br/>';
- }
- }
- $li=new human();
- $li->say(1,2,3);
- /*
- 调用一个未定义的方法
- Fatal error: Call to undefined method human::say() in D:\wamp\www\php\59.php on line 8
- */
- $li->t('a','b');
- /*
- __call是调用不可见(不存在或无权限)的方法时,自动调用
- $lisi->say(1,2,3);-----没有say()方法----> __call('say',array(1,2,3))运行
- */
- human::cry('痛哭','鬼哭','号哭');
- /*
- __callStatic 是调用不可见的静态方法时,自动调用.
- Human::cry('a','b','c')----没有cry方法---> Human::__callStatic('cry',array('a','b','c'));
- */
- ?>
天气预报小实例
- <?php
- //获得每个城市天气预报
- class Action{
- public function tj(){
- echo 'tj天气预报<br/>';
- }
- /*
- $m 方法名
- $p 方法参数集合
- */
- public function __call($m,$p){
- echo $m,'天气预报<br/>';
- }
- }
- $c=new Action();
- $c->tj();
- //获得城市
- $city=$_GET['method'];
- if(isset($city)){
- //获得城市的方法,由魔术方法__call处理
- $c->$city();
- }
- /*
- 网址:http://localhost/php/60.php?method=beijing
- 结果:
- tj天气预报
- beijing天气预报
- */
- ?>
PHP魔术方法之__call与__callStatic方法的更多相关文章
- 魔术方法之__call与__callStatic方法
<?php class human{ private function t(){ } /** * 魔术方法__call * * @param string $method 获得方法名 * @pa ...
- PHP 魔术方法 __call 与 __callStatic 方法
PHP 魔术方法 __call 与 __callStatic 方法 PHP 5.3 后新增了 __call 与 __callStatic 魔法方法. __call 当要调用的方法不存在或权限不足时,会 ...
- php -- 魔术方法 之 调用方法:__call()、__callStatic()
方法重载:当调用一个不存在或者权限不够的方法的时候,会自动调用__call()方法 public function __call($name,$args){} :用对象调用方法 public sta ...
- 魔术方法之__call、__callStatic
1.__call() 作用,当调用不存在的方法时,会调用该方法.实际应用,当程序调用不存在的方法时,意外导致程序终止. .或者当你调用了受保护的或者是私人的方法时,也会自动调用__call方法 结果: ...
- __call()和__callStatic()方法
__call() 当对象访问不存在的方法时,__call()方法会被自动调用__callStatic() 当对象访问不存在的静态方法时,__callStatic()方法会被自动调用 这两个方法在PHP ...
- php中__call() 和 __callStatic方法的使用
__call 与__callStatic 魔法方法是php5.3后新增的,二者的应用场景: 1.当要调用的方法不存在或权限不足时,会自动调用__call 方法. 2.当调用的静态方法不存在或权限不足时 ...
- PHP中的__call和__callStatic方法
如何防止调用不存在的方法而出错,使用__call魔术重载方法. __call方法原型如下: mixed __call(string $name,array $arguments) 当调用一个不可访问的 ...
- PHP中的__call和__callStatic方法(未看完)
如何防止调用不存在的方法而出错,使用__call魔术重载方法. __call方法原型如下: mixed __call(string $name,array $arguments) 当调用一个不可访问的 ...
- 魔术方法以及__call的调用
一.什么是魔术方法? 魔术方法是php中对一类方法的统称,这些方法可以在任何类中被实现.他们通常可以完成一些特殊的无法纯粹依靠自己编程实现的功能.他们通常以双下划线"__"作为名称 ...
随机推荐
- Eclipse + Apache Axis2 发布SOAP WebService(三)第一个程序Hello Axis2 SOAP!
因为Axis2同时支持SOAP和RESTful的WebService开发. 我的目标主要是RESTful,这里简单记录一个SOAP的小例子: 原文地址:https://jingyan.baidu.co ...
- 《如何成为一位大家愿意追随的Leader》读后感
今天看了左耳朵耗子老师的文章<如何成为一位大家愿意追随的Leader>深有感触.每一行字都往心里说,文章里说到Leader和Boss的不同点在于,Leader是大家跟我一起上,而Boss则 ...
- faster-rcnn 目标检测 数据集制作
本文的目标是制作目标检测的数据集 使用的工具是 python + opencv 实现目标 1.批量图片重命名,手动框选图片中的目标,将目标框按照一定格式保存到txt中 图片名格式(批量) .jpg . ...
- 模型表单ModleForm
官方文档网址 http://python.usyiyi.cn/documents/django_182/topics/forms/modelforms.html 模型表单的应用场景 如果你正在构建 ...
- Docker 通俗易懂的入门
这篇转的文章讲的通俗易懂,算个入门的东西了- 转自:http://www.csdn.net/article/2014-07-02/2820497-what's-docker 尽管之前久闻Docker的 ...
- #pragma用法
#pragma是一种预处理指令,作用是设定编译器的状态或者是指示编译器完成一些特定的动作. 其格式一般为:#pragma Para.其中Para为参数.下面是一些常见用法. 1.message ——在 ...
- configure.ac:3: error: Autoconf version 2.68 or higher is required
configure.ac:3: error: Autoconf version 2.68 or higher is required 参考博客:https://blog.csdn.net/pretty ...
- 一起来学Spring Cloud | 第六章:服务网关 ( Zuul)
本章节,我们讲解springcloud重要组件:微服务网关Zuul.如果有同学从第一章看到本章的,会发现我们已经讲解了大部分微服务常用的基本组件. 已经讲解过的: 一起来学Spring Cloud | ...
- 网络数据嗅探工具HexInject
网络数据嗅探工具HexInject 网络数据嗅探是渗透测试工作的重要组成部分.通过嗅探,渗透人员可以了解足够多的内容.极端情况下,只要通过嗅探,就可以完成整个任务,如嗅探到支持网络登录的管理员帐号 ...
- Ural 1780 Gray Code 乱搞暴力
原题链接:http://acm.timus.ru/problem.aspx?space=1&num=1780 1780. Gray Code Time limit: 0.5 secondMem ...