Login
网站首页 > 文章中心 > 其它

php方法重载_php如何实现重载

作者:小编 更新时间:2023-08-16 17:34:28 浏览量:242人看过

php 到底可不可以重载

php 作为一种弱类型语言,本身不能像强类型如java ,c◆◆那样,直接的实现重载.不过可以通过一些方法,间接的实现重载.

使用一个统一的函数来实现重载.该方法要使用func_get_args()和func_num_args()方法.

php?

function?test1($name){?

echo?$name;?

}?

echo?$name.$age;?

function?load(){?

//返回输入的元素数目?

$num=func_num_args();?

//返回输入元素列表的数组形式?

$arr=func_get_args();?

if($num==1){?

test1($arr[0]);?

}else?{?

load("a");?

echo?"br/";?

load("a","b");?

class?A{?

//name?:调用的方法名字.args:参数列表?

function?__call($name,$args){?

$num=count($args);?

$this-test1($args[0]);?

else?{?

echo?$name."?".$age;?

$a=new?A();?

$a-a("a");?

$a-a("a","b");?

PHP重载 有什么用

用到的情况还是很多的 比方说 你在做底层开发时 经常会创建一些共有的 变量 就要加载这些数据 这是就得用这些函数了

PHP重载到底是什么意思

针对不同参数形式写出的多个功能类似名字一样的函数.

比如

sort(int a,int b){}

sort(double c,double d,double f){}

这两个函数就是重载关系.表示了功能类似名字一样的两个函数,只是参数形式不一样

php中重载是多太的另一种实现方式,本人贴出原书实力代码,请求解答,实例代码一运行就报错

首先你这个报错是因为一个类定义里不能直接写表达式,必须放在方法里面.可能是你不小心把大括号的结尾放错了地方.

你这个不能算什么多态,而是php的魔术方法__Call ,当调用一个类中不存在的方法时,会调用这个方法.

把代码做了改写:

php

class C{

function __call($name,$num){

echo "方法的名称:".$name."br \";

echo "方法参数的个数:".count($num)."br \";

if(count($num)==1){

echo $this-list1();

}

public function list1(){

return "这是list1函数br \";

$m=new C();

$m-list(1);

以上就是土嘎嘎小编为大家整理的php方法重载相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章