php魔术函数__call()用法实例分析
本文实例分析了php魔术函数__call()用法。分享给大家供大家参考。具体如下:
php魔术函数__call()的介绍,看完下面的实例就明白了:
<?php
class A{
public $name;
function test1($a){
echo "test1111";
}
function test2($a){
echo "test2222";
}
//当某个对象调用某个方法,而当该方法不存在时,则系统会自动调用__call()
function __call($method,$val){
echo "类中找不到方法:".$method;
}
}
$aaa = new A();
$aaa ->test(1);
?>
输出结果:
类中找不到方法:test
希望本文所述对大家的php程序设计有所帮助。
相关推荐
-
深入PHP5中的魔术方法详解
从PHP 5以后的版本,PHP中的类就可以使用魔术方法了.其规定以两个下划线(__)开头的方法都保留为魔术方法,所以建议大家函数名最好不用__开头,除非是为了重载已有的魔术方法. 1.__get.__set这两个方法是为在类和他们的父类中没有声明的属性而设计的.◆__get( $property ) 当调用一个未定义的属性时,此方法会被触发,传递的参数是被访问的属性名.◆__set( $property, $value ) 给一个未定义的属性赋值时,此方法会被触发,传递的参数是被设置的属性名和值
-
PHP魔术方法__GET、__SET使用实例
__get() - 读取不可访问属性的值时,__get() 会被调用. __set() - 在给不可访问属性赋值时,__set() 会被调用. 复制代码 代码如下: <?php /** * 清晰的认识__get() __set() */ class Example { //公有的属性 public $public = 'pub' ; //受保护的 - 子类中该属性可用 protected $protected = 'pro'; //私有的 -
-
详解php的魔术方法__get()和__set()使用介绍
先看看php官方文档的解释: __set() is run when writing data to inaccessible properties. __get() is utilized for reading data from inaccessible properties. 究竟用中文怎么翻译呢? inaccessible :n. 难达到:难接近:无法理解. 有代码有真相: 复制代码 代码如下: <?php error_reporting(E_ALL); class stu{ priv
-
php中的常用魔术方法总结
常用的魔术方法有:__Tostring () __Call() __autoLoad() __ clone() __GET() __SET() __isset() __unset() 1.__Tostring() 用于定义输出对象引用时调用 常用于打印一些对象的信息 必须有返回值eg:有一个persion类Persion per =new persion()Echo per; //直接调用会出错我们可以在类的定义中添加__tostring()方法 复制代码 代码如
-
php 魔术方法使用说明
PHP5.0后,php面向对象提成更多方法,使得php更加的强大!! 一些在PHP叫魔术方法的函数,在这里介绍一下:其实在一般的应用中,我们都需要用到他们!! 1.__construct() 当实例化一个对象的时候,这个对象的这个方法首先被调用. Java代码 class Test { function __construct() { echo "before"; } } $t = new Test(); class Test { function __construct() { ec
-
PHP的魔术常量__METHOD__简介
__METHOD__ 是PHP5之后新增的魔术常量,表示的是类文法的名称.魔术常量是一种PHP预定义常量,它的值可以是变化的,PHP中的其它已经存在的魔术常量有__LINE__.__FILE__.__FUNCTION__.__CLASS__等. 下面就用一小段代码来演示一下__METHOD__的用法. <?php class chhua{ function test(){ echo __METHOD__; } } $e=new chhua(); $e->test();//输出:chhua::t
-
php面向对象全攻略 (十一)__toString()用法 克隆对象 __call处理调用错误
16.__toString()方法 我们前面说过在类里面声明"- "开始的方法名的方法(PHP 给我们提供的),都是在 某一时刻不同情况下自动调用执行的方法,"__toString()"方法也是一样自动被调用的,是在 直接输出对象引用时自动调用的, 前面我们讲过对象引用是一个指针,比如说:"$p=new Person()"中,$p 就是一个引用,我们不能使用echo 直接输出$p,这样会输出"Catchable fatal error:
-
PHP 5.3新增魔术方法__invoke概述
PHP自从5.3版以来就新增了一个叫做__invoke的魔术方法,使用该方法就可以在创建实例后,直接调用对象.如下示例所示: class testClass { public function __invoke { print "hello world"; } } $n = new testClass; $n(); 执行结果为: hello world. php官方示例如下: class CallableClass { public function __invoke($x) { va
-
PHP魔术方法__ISSET、__UNSET使用实例
__isset() – 在对类中属性或者非类中属性使用isset()方法的时候如果没有或者非公有属性,则自动执行__isset()的方法 __unset() - 在对类中属性或者非类中属性使用unset()方法的时候如果没有或者非公有属性,则自动执行__unset()的方法 复制代码 代码如下: <?php /** * 针对类中的魔术方法 __isset() 和 __unset() 的例子 */ class Example { public $public
-
php中__toString()方法用法示例
本文实例讲述了php中__toString()方法.分享给大家供大家参考,具体如下: 我们前面说过在类里面声明"--"开始的方法名的方法,都是在某一时刻不同情况下自动调用执行的方法."__toString()"方法也是一样自动被调用的.是在直接输出对象引用时自动调用的. <?php class TestClass{ public $foo; public function __construct($foo) { $this->foo = $foo; }
-
php面向对象中的魔术方法中文说明
1.__construct() 实例化对象是被自动调用.当__construct和以类名为函数名的函数 同时存在时调用__construct,另一个不背调用. 类名为函数名的函数为老版的构造函数. 2.__destruct() 当删除一个对象或一个对象操作结束是被调用. 3.__call() 对象调用某个方法.若方法不存在,这调用__call 这个方法 4.__get() 读取一个对象属性,如果对象属性是私有的会调用它 5.__set() 给一个对象属性赋值时如果属性是私有的会调用它 6.__t
随机推荐
- Python通过命令开启http.server服务器的方法
- jquery读写cookie操作实例分析
- Spark的广播变量和累加器使用方法代码示例
- Java8之lambda表达式基本语法
- vitualbox虚拟机安装centos 7 及ssh访问、自启动等配置方法
- php根据分类合并数组的方法实例详解
- 大家在抢红包,程序员在研究红包算法
- Shell脚本实现批量替换文件内容
- C# 生成随机数的代码
- JavaScript自定义数组排序方法
- 与MSSQL对比学习MYSQL的心得(七)--查询
- Vue2.0组件间数据传递示例
- SSH框架网上商城项目第28战之使用Ajax技术局部更新商品数量和总价
- SQLServer 数据库故障修复顶级技巧之一
- 微信小程序 flex实现导航实例详解
- 利用PHPExcel读取Excel的数据和导出数据到Excel
- linux chroot命令详解
- Node.js上传文件功能之服务端如何获取文件上传进度
- JavaScript实现的鼠标跟随特效示例【2则实例】
- springBoot定时任务处理类的实现代码
