`

php5中的overloading

PHP 
阅读更多
php5中的overloading始终没有什么惊喜,实现起来居然十分曲折的,这点还是比不上java哦
,其中是通过_call来实现的,这个方法用来监视一个对象中的其它方法。如果你试着调用一个对象中不存在的方法,__call 方法将会被自动调用。
比如

<?php
class Magic {
  function __call($name,$arguments) {
    if($name=='foo') {
      if(is_int($arguments[0])) $this->foo_for_int($arguments[0]);
      if(is_string($arguments[0])) $this->foo_for_string($arguments[0]);
    }
  }   private function foo_for_int($x) {
    print("oh an int!");
  }   private function foo_for_string($x) {
    print("oh a string!");
  }
} $x = new Magic();
$x->foo(3);
$x->foo("3");
?>

 你看多不好呀,还要手工去判断参数的类型

分享到:
评论

相关推荐

    php5面向对象编程

    在PHP5中,面向对象编程(OOP)是一种强大的编程范式,旨在解决大型项目中的代码管理和维护问题。随着代码量的增长,耦合度高和模块间的紧密依赖会导致修改一个部分可能影响整个系统的稳定性。OOP通过封装、继承和...

    PHP5 完整官方 中文教程

    PHP5 完整官方 中文教程 版权信息 前言 入门指引 简介 简明教程 安装与配置 安装前需要考虑的事项 Unix 系统下的安装 Mac OS X 系统下的安装 Windows 系统下的安装 PECL 扩展库安装 还有问题? 运行时配置 语言参考 ...

    php手册PHP5研究室编无乱码版本chm

    Object property and method call overloading XCIII. ODBC and DB2 functions (PDO_ODBC) XCIV. ODBC Functions (Unified) XCV. oggvorbis XCVI. OpenAL Audio Bindings XCVII. OpenSSL Functions XCVIII. ...

    PHP5中文参考手册

    Object overloading — Object property and method call overloading OCI8 — Oracle 函数 ODBC — ODBC Functions (Unified) ODBC and DB2 (PDO) — ODBC and DB2 Functions (PDO_ODBC) OGG/Vorbis — oggvorbis ...

    php5 类与对象

    在 PHP5 中,类是用于定义对象模板的一种语法结构。一个类可以包含属性(变量)和方法(函数)。对象则是根据类实例化的实体。 ```php class Person { public $name; public $age; function sayHello() { echo...

    php帮助文档,php。chm,php必备的中文手册

    Object property and method call overloading XCVI. Oracle 函数 XCVII. ODBC Functions (Unified) XCVIII. ODBC and DB2 functions (PDO_ODBC) XCIX. oggvorbis C. OpenAL Audio Bindings CI. OpenSSL Functions ...

    PHP5 开发手册 简体中文手册

    Object property and method call overloading XCV. Oracle 函数 XCVI. ODBC Functions (Unified) XCVII. ODBC and DB2 functions (PDO_ODBC) XCVIII. oggvorbis XCIX. OpenAL Audio Bindings C. OpenSSL Functions...

    PHP5面向对象初步.rar

    在PHP5中,通过方法重载(Overloading)和接口(Interface)实现多态性。 7. 抽象类与接口:抽象类(Abstract Class)用`abstract`关键字定义,不能直接实例化,用于定义共同的属性和方法。接口(Interface)定义一...

    php中文完全开发手册

    Object property and method call overloading LXXX. PDF functions LXXXI. Verisign Payflow Pro Functions LXXXII. PHP Options&Information LXXXIII. POSIX Functions LXXXIV. PostgreSQL 数据库函数库 LXXXV. ...

    PHP函数实验报告

    在PHP编程中,函数是组织代码的重要方式,它们允许我们重复使用已编写好的代码段,提高代码的复用性和可维护性。这份“PHP函数实验报告”详细介绍了通过实验来理解和应用PHP函数的过程,旨在加深对PHP函数的理解并...

    PHP面向对象程序设计重载(overloading)操作详解

    在PHP面向对象编程中,重载(overloading)是一个关键概念,它允许程序员在类中创建动态的属性和方法。然而,PHP中的重载与传统意义上的面向对象语言中的重载有所不同。传统重载指的是在同一作用域内使用相同名称但...

    深入PHP++面向对象、模式与实践_2017英文版+最新中文版(附源码)

    方法重载(overloading)和方法重写(overriding)是实现多态的主要方式。 4. **抽象**:抽象类和接口提供了一种规范,定义了必须被子类实现的公共行为。在PHP中,可以使用`abstract class`定义抽象类,使用`...

    php手册.chm,php手册

    Object property and method call overloading XCIII. ODBC and DB2 functions (PDO_ODBC) XCIV. ODBC Functions (Unified) XCV. oggvorbis XCVI. OpenAL Audio Bindings XCVII. OpenSSL Functions XCVIII. Oracle ...

    oriented.php.concepts.techniques.and.code

    PHP中的多态主要体现在方法重写(Override)和方法重载(Overloading):方法重写是指子类可以覆盖父类的同名方法;方法重载则是在一个类中可以有多个同名但参数列表不同的方法。 **4. 接口(Interfaces)** 接口是...

    php面向对象系列(完整)

    - 方法重载(Overloading):PHP不支持方法名的重载,但可以通过魔术方法`__call()`和`__callStatic()`实现类似效果。 - 方法重写(Override):子类可以覆盖父类的方法,实现不同的行为。 - 接口(Interface):...

    PHP函数参考手册大全

    Object property and method call overloading XCIII. ODBC and DB2 functions (PDO_ODBC) XCIV. ODBC Functions (Unified) XCV. oggvorbis XCVI. OpenAL Audio Bindings XCVII. OpenSSL Functions XCVIII. Oracle ...

    PHP手册2007整合中文版

    PHP,即“PHP: Hypertext Preprocessor”,是一种被广泛使用的开放源代码多用途脚本语言,尤其适用于 web 开发并可以嵌入到 HTML 中去。其语法利用了 C,Java 和 Perl,非常容易学习。该语言的主要目标是让 web 开发...

    中文版PHP使用手册

    Object property and method call overloading XCIII. ODBC and DB2 functions (PDO_ODBC) XCIV. ODBC Functions (Unified) XCV. oggvorbis XCVI. OpenAL Audio Bindings XCVII. OpenSSL Functions XCVIII. Oracle ...

    PHP官方手册中文版

    Object property and method call overloading CVII. Oracle 函数 CVIII. ODBC Functions (Unified) CIX. ODBC and DB2 Functions (PDO_ODBC) CX. oggvorbis CXI. OpenAL Audio Bindings CXII. OpenSSL ...

Global site tag (gtag.js) - Google Analytics