php中 重载的方法
php中 重载(一)这个文章,谢谢.作为初学者,大牛勿喷:
基本是两个方法
__call,当调用对一个不可访问的对象方法时,会自动执行该魔术方法!(对象调用)
典型的两种处理方式:
1,给出友好的提示!
2,执行默认操作!
__callstatic,当调用一个不可访问的静态方法时,会自动执行该魔术方法!
详细代码:
class Student {
public $name = 'php';
public $age = 10;
public function sayName() {
return $this->name;
}
/**
* @param $method_name string 方法名
* @param $method_arguments array 调用时携带的参数
*/
public function __call($method_name, $method_arguments) {
echo '
抱歉, 你调用的方法不存在!,你应该调用(***)方法!';
$this->defaultAction();//执行默认的方法,可以做跳转用,实现redirect
}
public function defaultAction() {
echo '
这里是默认动作!';
}
public static function __callStatic($m_name, $m_args) {
echo '这里是静态的方法重载!';
}
}
Student::sayCounter();
php中 重载的方法的更多相关文章
- java面试题0001-区分类中重载方法的依据是什么?
到底是根据什么来区分类中重载的方法? A:不同的返回值类型. B:不同的参数类型. C:不同的访问权限. D:不同的参数名称. 解析: Step1.我们先在DifferentiateReload类中创 ...
- 重载tostring()方法重要性
曾经知道继承于object的类都有这个toString方法,重来没在项目中使用过这方法,同一时候也没对该方法进行重载.在如今这个公司上班,才知道了toString方法的重要性. 并且也懂得了重载tos ...
- Java中的方法重载与方法重写
重载(overload) 重载是在一个类中,同名方法拥有不同的参数列表则视为重载.不同的参数列表包括:参数数量不同,参数类型不同,参数顺序不同.重载对于返回类型没有要求,所以不能通过返回类型去判断是否 ...
- Java-Runoob-高级教程-实例-方法:15. Java 实例 – 重载(overloading)方法中使用 Varargs
ylbtech-Java-Runoob-高级教程-实例-方法:15. Java 实例 – 重载(overloading)方法中使用 Varargs 1.返回顶部 1. Java 实例 - 重载(ove ...
- 如何在WebService中重载方法
1. 本来在WebService中这样写的重载方法,如下所示: [WebService(Namespace = "http://tempuri.org/")] [WebSer ...
- C#中Form的Paint事件响应方法与重载虚方法OnPaint()的区别
Form_Paint()方法是Paint事件的响应方法,OnPaint是可重载的虚方法,OnPaint方法是调用Paint事件的,用哪一个,效果是一样,就看那一个方便了内部是这样实现的: protec ...
- .NET 基础 一步步 一幕幕[面向对象之方法、方法的重载、方法的重写、方法的递归]
方法.方法的重载.方法的重写.方法的递归 方法: 将一堆代码进行重用的一种机制. 语法: [访问修饰符] 返回类型 <方法名>(参数列表){ 方法主体: } 返回值类型:如果不需要写返回值 ...
- Delphi 中同类型方法的说明
对象的方法能定义成静态(static).虚拟(virtual).动态(dynamic)或消息处理(message).请看下面 的例子: TFoo = class procedure IAmAStati ...
- PHP面向对象编程——深入理解方法重载与方法覆盖(多态)
什么是多态? 多态(Polymorphism)按字面的意思就是“多种状态”.在面向对象语言中,接口的多种不同的实现方式即为多态.引用Charlie Calverts对多态的描述——多态性是允许你将父对 ...
随机推荐
- js 验证图片
var selectedImg = e.target.files[0]; //获取图片 var isPic = /^(image\/bmp|image\/gif|image\/jpeg|image\/ ...
- 在线Online表单来了!JeecgBoot 2.1 版本发布——基于SpringBoot+AntDesign的快速开发平台
项目介绍 Jeecg-Boot 是一款基于SpringBoot+代码生成器的快速开发平台! 采用前后端分离架构:SpringBoot,Ant-Design-Vue,Mybatis,Shiro,JWT. ...
- SpringBoot学习笔记(八):SpringBoot启动端口+访问路、SpringBoot配置文件yml、SpringBoot多环境区分、SpringBoot打包发布
SpringBoot启动端口+访问路径 配置文件: server.port=9090 server.context-path=/springboot 现在只能用http://127.0.0.1:909 ...
- Python学习day14-函数进阶(2)
figure:last-child { margin-bottom: 0.5rem; } #write ol, #write ul { position: relative; } img { max- ...
- Neo4j与springdata集成
1.maven工程需导入的jar包 <!-- neo4j --> <dependency> <groupId>org.springframework.data< ...
- vue 模版组件用法
第一种 //首先,别忘了引入vue.js <div id="user_name_01"></div> <script src="../nod ...
- SPRINGBOOT配置MYSQL,MYBATIS,DRUID
配置 DRUID连接池 MYSQL数据库 MYBATIS持久层框架 添加依赖 <dependency> <groupId>mysql</groupId> <a ...
- Windows API 第二篇 SHGetSpecialFolderPath
BOOL SHGetSpecialFolderPath( HWND hwndOwner, LPTSTR lpszPath, ...
- odoo many2one
在xml中使many2one字段 不可点击 不可跳转 options="{'no_open': True, 'no_create': True}"
- pip报错ImportError: cannot import name main
编辑pip sudo gedit /usr/bin/pip 修改pip文件: 源文件 from pip import main if __name__ == '__main__': sys.exit( ...