php一个函数问题

$_fun = "substr";  //用户自定义的 不固定
$_content = "22222222";   //用户自定义的  不固定
$_args = "0,3";  //用户自定义的 不固定

$str = $_fun($_content, $_args);//substr("22222222",0,3)
var_dump($str);

返回结果$str 是22222222
怎么让他等于22222 $args="3" 单参数的时候是正确的 多参数就不行
不使用call_user_func_array方法

阅读 3.2k
5 个回答

函数可变参数

$_fun = "substr";  //用户自定义的 不固定
$_content = "22222222";   //用户自定义的  不固定
$_args = "0,4";  //用户自定义的 不固定
$args = explode(',', $_args);
$str = $_fun($_content, ...$args);//substr("22222222",0,3)
var_dump($str);
<?php
$_fun = "substr";  //用户自定义的 不固定
$_content = "22222222";   //用户自定义的  不固定
$_args = "0,3";  //用户自定义的 不固定

$str = "return $_fun($_content, $_args);";//substr("22222222",0,3)
echo eval($str);

eval()

$content = "22222222";
echo mb_substr($content,0,5,'utf-8');

遇到这种问题我一般会直接问:你直接说需求

推荐问题