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方法

阅读 3k
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');

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题