对于弱类型语言来说,PHP函数重载,并不像一般的OOP那样。而弱类型本来就不区分,所以无法通过这些来实现。但是,可以通过下面的方法来实现简单的伪重载吧。

函数重载的替代方法-伪重载,下面看一个具体的实例代码。

php

//函数重载的替代方法-伪重载

//

//确实,在PHP中没有函数重载这个概念,让很多时候我们无法进行一些处理,甚至有时候不得不在函数后面定义好N个参数

//在看到了func_get_arg,func_get_args,func_num_args,这三个函数的时候,,你们是不是想起了什么?

function testOne ( $a ) {

echo (' 一个参数就这样 ');

}

function testTwo ( $a , $b ){

echo (' 两个参数的就这样 ');

}

function testThree ($a, $b, $c ) {

echo (' 黑黑,这是三个参数的 ');

}

function test () {

$argNum = func_num_args ();

// 这一段其实可以用 $_arg = func_get_args() 来获得所有的参数,只是要用数组而已,不方便我下面的表达,呵呵

for ( $i = 0 ; $i < $argNum ; $i ++ ) {

$_arg_ { $i } = func_get_arg ( $i );

}

switch ( $argNum ) {

case 1 :

testOne( $_arg_1 );

break ;

case 2 :

testTwo( $_arg_1, $_arg_2 );

break ;

case 3 :

testThree( $_arg_1, $_arg_2, $_arg_3 );

break ;

default :

echo ( ' 这是没有参数的情况 ' );

break ;

}

}

test();

echo ( ' ' );

test( 1 );

echo ( ' ' );

test( 1 , 2 );

echo ( ' ' );

test( 1 , 2 , 3 );

// 这些只是在函数中的运用,其实最主要的还是在类中的运用

//如果这些用到类里面我就不需要担心构造函数是否有几个参数了,不是吗?

class test {

var $a = 0 ;

var $b = 0 ;

function test () {

$argNum = func_num_args ();

$_arg = func_get_args ();

switch ($argNum ) {

case 1 :

$this -> test1( $_arg [ 0 ] );

break ;

case 2 :

$this -> test2( $_arg [ 0 ] , $_arg [ 1 ]);

break ;

default :

$this -> a = 0 ;

$this -> b = 1 ;

break ;

}

}

function test1 ($a) {

$this -> a = $a ;

}

function test2 ($a, $b) {

$this -> a = $a ;

$this -> b = $b ;

}

}

?>

以上所述就是本文的全部内容了,希望大家能够喜欢。

php是否直接支持函数的重载,php函数重载的替代方法--伪重载详解相关推荐

  1. php 中c函数重载,php函数重载的替代方法--伪重载详解

    php //函数重载的替代方法-伪重载 // //确实,在PHP中没有函数重载这个概念,让很多时候我们无法进行一些处理,甚至有时候不得不在函数后面定义好N个参数 //在看到了func_get_arg, ...

  2. python中paste函数的作用_PIL图像处理模块paste方法简单使用详解

    python2中提供了PIL基础的图像数据出来模块,在python3中更名为了pillow模块,名字虽然发生了改变,但是提供的方法和功能都是一样的,对于日常基础的图像数据处理分析来说是足够用了的,现在 ...

  3. mysql去重函数的使用方法_MySQL中使用去重distinct方法的示例详解

    一 distinct 含义:distinct用来查询不重复记录的条数,即distinct来返回不重复字段的条数(count(distinct id)),其原因是distinct只能返回他的目标字段,而 ...

  4. Python之pandas:pandas中to_csv()、read_csv()函数的index、index_col(不将索引列写入)参数详解之详细攻略

    Python之pandas:pandas中to_csv().read_csv()函数的index.index_col(不将索引列写入)参数详解之详细攻略 目录 pandas中to_csv().read ...

  5. uml建模工具 支持php,【UML 建模】在线UML建模工具 ProcessOn 使用详解

    总结: -- 推荐理由 : 最近从 Windows 操作系统 转到 MAC 上, 正在看设计模式 和 重构, 找不到好用的 UML 工具, 因此在网上找了一款可以在线使用的 UML 工具, 用起来发现 ...

  6. python cut函数_基于python cut和qcut的用法及区别详解

    我就废话不多说了,直接上代码吧: from pandas import Series,DataFrame import pandas as pd import numpy as np from num ...

  7. python iloc函数_python选取特定列 pandas iloc,loc,icol的使用详解(列切片及行切片)

    df是一个dataframe,列名为A B C D 具体值如下: A B C D 0 ss 小红 8 1 aa 小明 d 4 f f 6 ak 小紫 7 dataframe里的属性是不定的,空值默认为 ...

  8. nginx安装、nginx前端配置、后端配置、前后端分离配置、https支持(ssl配置)、负载均衡配置、nginx location详解

    nginx配置 一.nginx安装 二.nginx配置 仅前端配置 仅后端配置 前后分离配置(1) 前后分离配置(2) 前后不分离配置 https/ssl配置 负载均衡配置 数据压缩配置 三.完整ng ...

  9. ip地址转换数字函数 iton_PHP中IP地址与整型数字互相转换详解

    IP转换成整型存储是数据库优化一大趋势,不少人目前存储IP时还在使用字符串类型存储,字符串索引比整型索引消耗资源很多,特别是表中数据量大的时候,以及求查询某一个ip段的数据,今天说的ip是指ip4,i ...

最新文章

  1. 理解GRUB2工作原理及配置选项与方法
  2. 解释型和编译型编程语言_解释型和编译型编程语言:有什么区别?
  3. 神秘AI换脸软件入侵全球社交网络!马斯克秒变文艺复兴贵族
  4. Javascript的FSO功能
  5. android waiting for debugger
  6. WordCount代码详解
  7. mysql idle_MySQL常用指令
  8. python3.5安装pip_pip和pip3 – 都指向python3.5?
  9. cpu中的MMU的作用
  10. 阿里云贾扬清发布大数据+AI产品体系“阿里灵杰” | 云栖大会
  11. wineskin使用教程_使用Wineskin在Mac上运行Windows Apps /游戏
  12. IE离线脱机安装,解决IE11安装时需要“获取更新”
  13. Google Chromecast
  14. AST使用eval运行函数,更换数值
  15. Gazebo + cartographer2D + velodyne多线雷达建图仿真
  16. 《Vue.js实战》第七章.组件
  17. preg_match函数绕过
  18. python中将数据写入excel
  19. [转载]惯性导航专业相关书籍180多部
  20. 数字化经济带领各行各业迎来碧海蓝天

热门文章

  1. 了解万用表历史,万用表的前世今生
  2. 【arduino】童芯派彩屏显示图片,图片取模后在TFT液晶显示
  3. 几种替代MATLAB的工具,堪称完美!
  4. 【AI2】更新app inventor离线开发环境百度网盘下载链接,安卓app图形化开发环境...
  5. 函数式编程filter、map、reduce
  6. 计算机网络·CSMA/CD协议有关计算
  7. 一句话搞定python六剑客
  8. Java基于自定义注解的面向切面的实现
  9. 判断页面是否加载完成
  10. pip: command not found 一系列报错