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();

时间: 2024-10-12 04:49:46

php中 重载的方法的相关文章

重载tostring()方法重要性

曾经知道继承于object的类都有这个toString方法,重来没在项目中使用过这方法,同一时候也没对该方法进行重载.在如今这个公司上班,才知道了toString方法的重要性. 并且也懂得了重载tostring方法的必要性. 那么toString方法有哪些用呢.下面是我总结的几个用处吧.并且这几个用处对我来说是挺有帮助的. 1.在须要大量日志输出的系统中重载toString()方法是很必要的. 我们在输出日志时.仅仅需调用对象的该方法就能把此时的传入数据或结果数据进行格式化的输出,这样的数据对安

JAVA SE中方法重载和方法重写及数据库中子程序的重载

首先方法重写和方法重载是建立在Java的面向对象的继承和多态的特性基础上而出现的.至于面向对象的继承和多态的特性我就不在这里多说了.继承是指在一个父类的基础再创建一个子类,这样子类就拥有了父类的非私有的特性,同时子类还可以扩展自己的特性,这样就引出了方法重写和方法重载! 一.方法重写(Override)         在Java中如何来定义重写:Java程序中类的继承特性可以产生一个子类,子类继承父类就拥有了父类的非私有的属性(方法和变量),在子类中可以增加自己的属性(方法和变量),同时也可以

java面向对象中的方法重载与方法重写的区别

一.方法重载(overload) a:一个类中允许声明多个方法 b:一个类中允许有多个方法名称一样,但是参数不同的多个方法.通过参数不同来区别不同的方法. 参数不同表现为: 1:参数个数不同 2:参数类型不同 3:参数类型的顺序不同也是参数类型不同 4:在参数类型一样的情况下,名称不一样不代表参数不一样 重载方法的调用: 1:根据调用的时候实际参数来判断到底调用的是哪一方法 2:根据参数的要求,严格匹配传入的对应类型 3:如果严格匹配不到的话,默认遵循就近匹配 4:根据数据默认转换的顺序就近匹配

__slots__和运算符重载中的反向方法

问题的引出 都是字典惹的祸 字典为了提升查询效率,必须用空间换时间. 一般来说一个多想,属性多一点,都存储在字典中便于查询,问题不大. 但是如果数百万个对象,那么字典占的就有点大了. 这个时候,能不能把属性字典__dict__省了? python提供了__slots__ class A: x = 1 def __init__(self): self.y = 5 self.z = 6 def show(self): print(self.x,self.y,self.z) a = A() print

在子类中重载父类的方法(重写方法)

<?php class person{ protected $name; protected $sex; protected $age; function __construct($name,$sex,$age){ $this->name=$name; $this->sex=$sex; $this->age=$age; } function say(){ echo "我的名字:".$this->name.":性别:".$this->

java怎样实现重载一个方法

重载(重新载选方法): java允许在一个类中,存在多个方法拥有相同的名字,但在名字相同的同时,必须有不同的参数,这就是重载,编译器会根据实际情况挑选出正确的方法,如果编译器找不到匹配的参数或者找出多个可能的匹配就会产生编译时错误,这个过程被称为重载的解析 . 重载包括:普通方法的重载和构造方法的重载 方法:即函数(文中我们统称之为"方法"),是一个固定的一个程序段,或称其为一个子程序,它在可以实现固定运算功能.而且,同时还带有一个入口和一个出口,所谓的入口,就是函数所带的各个参数,我

Python中的__new__()方法的使用

__new__() 函数只能用于从object继承的新式类. 先看下object类中对__new__()方法的定义: class object:   @staticmethod # known case of __new__   def __new__(cls, *more): # known special case of object.__new__     """ T.__new__(S, ...) -> a new object with type S, a s

JAVA中构造器和方法的区别点

要学习Java,你必须理解构造器.因为构造器可以提供许多特殊的方法,这个对于初学者经常混淆.但是,构造器和方法又有很多重要的区别. 下面将简单介绍一下 ,最后用一个表作了些简单的总结. 功能和作用的不同构造器是为了创建一个类的实例.这个过程也可以在创建一个对象的时候用到:Platypus p1 = new Platypus(); 相反,方法的作用是为了执行java代码. 修饰符,返回值和命名的不同构造器和方法在下面三个方便的区别:修饰符,返回值,命名.和方法一样,构造器可以有任何访问的修饰: p

Java 方法重载,方法重写(覆盖),继承等细节注意

1.方法重载(method overload)的具体规范 如果有两个方法的方法名相同,但参数不一致,那么可以说一个方法是另一个方法的重载. 一.方法名一定要相同. 二.方法的参数表必须不同,包括参数的类型或个数,以此区分不同的方法体. 1.如果参数个数不同,就不管它的参数类型了! 2.如果参数个数相同,那么参数的类型或者参数的顺序必须不同. 三.方法的返回类型.修饰符可以相同,也可不同. 四.main方法也可以被重载 方法重载的作用:可以一个相同的方法传入不同的参数以达到想要的结果 2.方法继承