Php 警告:preg_replace_callback():需要参数2和x27;stru替换(数组(';';';';,';,';';';,';';';';&#)'\4'';,是一个有效的回调

Php 警告:preg_replace_callback():需要参数2和x27;stru替换(数组(';';';';,';,';';';,';';';';&#)'\4'';,是一个有效的回调,php,Php,抱歉,伙计们,我不是程序员,但我喜欢玩、添加和修改编程。自从我从PHP5升级到7.2以来,我遇到了一个问题。我的一些代码没有像下面这样正常工作 function floatvalue($value) { return floatval(preg_replace_callback('#^([-]*[0-9\.,\' ]+?)((\.|,){1}([0-9-]{1,2}))*$#e', "str_replace(array('.', ',', \"'\", ' '), '', '\\1')

抱歉,伙计们,我不是程序员,但我喜欢玩、添加和修改编程。自从我从PHP5升级到7.2以来,我遇到了一个问题。我的一些代码没有像下面这样正常工作

function floatvalue($value) { return floatval(preg_replace_callback('#^([-]*[0-9\.,\' ]+?)((\.|,){1}([0-9-]{1,2}))*$#e', "str_replace(array('.', ',', \"'\", ' '), '', '\\1') . '.\\4'", $value)); } if (!function_exists('mb_ucfirst') && function_exists('mb_substr')) { function mb_ucfirst($string) { $string = mb_strtoupper(mb_substr($string, 0, 1)) . mb_substr($string, 1); return $string; } } 函数浮点值($value) { return floatval(preg#u replace#callback('#([-]*[0-9\,\']+?)((\.|,){1}([0-9-]{1,2}))*$#e',“str#u replace(array('.',',',',\'''.'''''''.'''''''.\\1'.\\4'.$value)); } 如果(!function_exists('mb_ucfirst')&function_exists('mb_substr')){ 函数mb_ucfirst($string) { $string=mb_strotupper(mb_substr($string,0,1)).mb_substr($string,1); 返回$string; } } 我得到的错误是

Warning: preg_replace_callback(): Requires argument 2, 'str_replace(array('.', ',', "'", ' '), '', '\1') . '.\4'', to be a valid callback in /var/www... 警告:preg_replace_callback():需要参数2,“str_replace(数组(“.”、“,”、“,”)、“,”、“\1”)\4'',是/var/www中的有效回调。。。
我一直在寻找我不知道该怎么做。有人能帮忙吗?谢谢

用引号括起来并不能使它可调用。请看中的示例。这意味着对于preg_replace_,回调函数期望第二个参数(参数)使用回调函数,但给出了其他一些函数。在您的例子中是一个函数的字符串(双引号之间),但在php中它只是一个字符串。要了解如何真正通过回调检查,请参见文档中给出的示例:还应注意,如果您是编程新手,那么您的代码看起来有点高级,理解它可能需要花费一些精力来学习一些基本概念,如数据类型和回调。
/e
标志已经过时。看来这就是为什么您已经尝试迁移到
preg\u replace\u callback
。它有点太复杂了,无法说出这段代码要提取什么;所以也许可以从头重写。整个
stru\u replace
似乎有些多余。尽管您可能只是将其拆分为两行,而不是尝试将其用作回调。另请参见: