php7 call_user_func,call_user_method_array()

call_user_method_array()

(PHP 4 >= 4.0.5, PHP 5)

以参数列表的数组,调用用户方法Warning

This function wasDEPRECATEDin PHP 4.1.0,andREMOVEDin PHP 7.0.0.

Alternatives to this function include:

说明call_user_method_array(string$method_name,object&$obj,array$params):mixed

参数$method_name要调用的方法名称。$obj要调用的$method_name所在的对象object。$params数组形式的一组参数。

范例

代替call_user_method_array()<?php

call_user_func_array(array($obj, $method_name), $params);

?>

参见You don't have to write a new function, <?php call_user_func_array(array($obj, $method_name), $params); ?> works pretty fine! (to my mind, 'eval' fucntion should be avoided almost all the time)<?php

class a{

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

echo $a." ".$b." ".$c;

}

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

print_r($a);

echo "
";

print_r($b);

}

function cuf(Array $a, Array $b){

print_r($a);

echo "
";

print_r($b);

}

}

$a = new a;

// ### Just String Params ###

$array = array("Musa ATALAY",":","Software Developer");

$str = NULL;

foreach($array AS $v){

if(is_string($v)){

$str.="'".$v."',";

}else{

$str.=$v;

}

}

$str = rtrim($str,",");

$run = "echo \$a->b(".$str.");";

echo "
";

eval($run);

$str = NULL;

/*

OUTPUT :

Musa ATALAY : Software Developer

*/

// ### With Array Params ###

$array = array(array("Musa ATALAY",":","Software Developer"),array("Musa ATALAY",":","Software Developer"));

foreach($array AS $i => $v){

if(is_string($v)){

$str.="'".$v."',";

}else{

$str.="\$array[".$i."],";

}

}

$str = rtrim($str,",");

$run = "echo \$a->c(".$str.");";

echo "
";

eval($run);

/*

OUTPUT :

Musa ATALAY : Software Developer

Musa ATALAY : Software Developer

*/

?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值